PHP判断远程图片或文件或url是否存在

 更新时间:2016年11月25日 17:23  点击:2021
在php中要远程图片存不存在我们可以直接相关函数就可以了,像有curl,fopen之类的函数都可以快速的检测出来, 下面整理了几个例子,希望对各位有帮助。


例子一

 代码如下 复制代码

//判断远程文件
function check_remote_file_exists($url)
{
$curl = curl_init($url);
// 不取回数据
curl_setopt($curl, CURLOPT_NOBODY, true);
// 发送请求
$result = curl_exec($curl);
$found = false;
// 如果请求没有发送失败
if ($result !== false) {
// 再检查http响应码是否为200
$statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($statusCode == 200) {
$found = true;
}
}
curl_close($curl);

return $found;
}


当然也有很多其它方法,或多或少有些限制和缺陷,如:

(1)使用fopen()函数,它要在allow_url_open开启的状态下,否则会报错。

 代码如下 复制代码
$url = 'http://www.111cn.net /img/qrcode_for_phpddt.JPG';
if(@fopen($url, 'r')) {
    echo '文件存在';
} else {
    echo '文件不存在';
}

(2)get_headers取得服务器响应一个 HTTP 请求所发送的所有标头,效率较低,你可以测试下。

 代码如下 复制代码

$url = 'http://www.111cn.net /img/qrcode_for_phpddt.JPG';
 
stream_context_set_default(
    array(
        'http' => array(
             'timeout' => 1,
            )
    )
);

 
$headers = get_headers($url);
 
if(preg_match('/200/',$headers[0])) {
    echo '文件存在';
} else {
    echo '文件不存在';
}

(3)file_get_contents()函数

 

 代码如下 复制代码
 $opts = array(
    'http'=>array(
    'timeout'=>3,
    )
);
$context = stream_context_create($opts);
$resource = @file_get_contents('http://www.111cn.net /img/qrcode_for_phpddt.JPG', false, $context);
 
if($resource) {
    echo '文件存在';
} else {
    echo '文件不存在';
}

参考资料:fopen函数用法

 

参数 描述
filename 必需。规定要打开的文件或 URL。
mode 必需。规定要求到该文件/流的访问类型。可能的值见下表。
include_path 可选。如果也需要在 include_path 中检索文件的话,可以将该参数设为 1 或 TRUE。
context 可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。

 

mode 参数的可能的值

 

mode 说明
"r" 只读方式打开,将文件指针指向文件头。
"r+" 读写方式打开,将文件指针指向文件头。
"w" 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
"w+" 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
"a" 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
"a+" 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。
"x"

创建并以写入方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。

此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件。

"x+"

创建并以读写方式打开,将文件指针指向文件头。如果文件已存在,则 fopen() 调用失败并返回 FALSE,并生成一条 E_WARNING 级别的错误信息。如果文件不存在则尝试创建之。

这和给底层的 open(2) 系统调用指定 O_EXCL|O_CREAT 标记是等价的。

此选项被 PHP 4.3.2 以及以后的版本所支持,仅能用于本地文件

这是一个简单的利用jquery与php做的一个聊天室的源码,我们这里定时利用ajax读取数据库并进行刷新了,下面直接参上源码
 代码如下 复制代码
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script>
var chat = {
 init:function(){
  chat.first();
  $('#chat_btn').unbind('click').click(function(){
   chat.send();
  });
  $('#my_chat').keyup(function(){
   if(event.keyCode == 13){
    chat.send();
   }
  }); www.111cn.net
 },
 first:function(){
  $.getJSON('data.php',{
   action:'first',
   type:'l'
  },function(data){
   chat.btn_status._true();
   $('#mwebtime').html(data.time);
   $('#chat textarea').val(data.chat);
   $('#chat textarea').stop(true,true).animate({scrollTop:9999}, 1);
   chat.socket();
  });
 },
 send:function(){
  chat.btn_status._false();
  $.getJSON('send.php',{
   txt:$('#my_chat').val(),
   type:'l'
  },function(data){
   if(data.status==200){
    chat.btn_status._false();
    $('#my_chat').val('');
    setTimeout(function(){
     chat.btn_status._true();
    },2000);
   }
  });
 },
 socket:function(){
  $.getJSON('data.php',{
   action:'while',
   type:'l'
  },function(data){
   $('#mwebtime').html(data.time);
   $('#chat textarea').val(data.chat);
   $('#chat textarea').stop(true,true).animate({scrollTop:9999}, 1);
   chat.socket();
  });
 },
 btn_status:{
  _false:function(){
   $('#chat_btn').html('等待').attr('disabled',true);
  },
  _true:function(){
   $('#chat_btn').html('发言').attr('disabled',false);
  }
 }
}
chat.init();
</script>
</head>
 
<body>
<div id="chat">
 <textarea wrap="physical" style="line-height:20px;font-size:12px;height:100px;width:200px;"></textarea>
 <BR />
 <input id="my_chat" type="text" />
 <button id="chat_btn" disabled="disabled">发言</button>
</div>
<div id="mwebtime"></div>
</body>
</html>
data.php
<?php
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Pramga: no-cache");
set_time_limit(0);
$get = $_GET['action'];
$type = $_GET['type'];
$file = $type.'.txt';
if(isset($get) && isset($type) && file_exists($file)){
 switch($get){
  case 'first':
   $chat = file_get_contents($file);
   $json=array(
    'status' => 200,
    'time' => gmdate("s"),
    'chat' => $chat,
   );
   echo json_encode($json);
   break; www.111cn.net
  case 'while':
   $oldsize = filesize($file);
   $newsize = filesize($file);
   while(true){
    if($oldsize!=$newsize){
     $chat = file_get_contents($file);
     $json=array(
      'status' => 200,
      'time' => gmdate("s"),
      'chat' => $chat,
     );
     echo json_encode($json);
     exit;
    }
    clearstatcache();
    $newsize = filesize($file);
    usleep(10000);
   }
   break;
 }
}
?>
send.php
<?php
$json = array();
$txt = isset($_GET['txt'])?$_GET['txt']:'';
$type = isset($_GET['type'])?$_GET['type']:'';
if($txt!=''){
 $file = $type.".txt";
 if(file_exists($file)){
  $fp = fopen($file,"a");
  $str = "rn".'Admin:'.$txt;
  //$str = $txt."n"//linux;
  fwrite($fp, $str);
  fclose($fp);
  $json['status']=200;
  echo json_encode($json);
  exit;
 }
}
?>
phpMyAdmin不能导入2MB以上的文件是因为我们的php.ini配置作了限制了,如果有权限我们可以在php.ini配置中修改,如果没有权限可以使用第三方工具进行备份,下面整理了一些方法。

当我们使用phpMyAdmin导入备份的数据库文件时,默认只能上传小于2M的文件。但是通常我们的数据库备份文件是大于2M的,怎么办呢?其实我们只需修改一下php.ini文件中的一个参数即可。

解决办法一,有服务器修改权限

以使用USBWebserver搭建的WAMP环境为例,php.ini文件存在于两个地方:USBWebserversettings和USBWebserver 8php。

编辑php.ini,在其中找到:

 代码如下 复制代码

upload_max_filesize = 2M

把2M增加到20M或更大的数值即可。

保存文件,最后重启USBWebserver,或者说重新运行Mysql,就可以发现最大限制已经增大为……

慢着,竟然不是20M,而是8M。如图:

phpMyAdmin不能上传大于2M数据库文件的解决方法

三好公民也不知道是什么原因,反正暂时够用就行了。有知道的,请给三好公民讲解一下,谢谢!

解决方法二,如果没有服务器修改权限我们只要另想办法了

 

一、利用 帝国备份王 (EmpireBak) 备份数据
  1、首先下载安装 帝国备份王(EmpireBak)
  帝国备份王官方下载地址:http://www.phome.net/ebak2010/EmpireBak2010.zip
  第 1 步:上传程序包
  下载的压缩包后,将其解压,将安装包的 upload 目录中的全部文件和目录上传到服务器。虚拟主机用户可以上传到网站根目录(使用完后删除),对于部分有自己服务器或者VPS的用户也可以自己单独设置二级域名或者使用域名加端口的方式安装(这里就不着重讲解这个过程了)。
  第 2 步:设置目录属性
  您在正式使用以前,需要设置相关的目录属性,以便数据文件可以被 EmpireBak 正确的读写。使用 FTP 软件登录您的服务器,将服务器上以下的文件/目录属性设置为 777。
  目录文件名称 说明
  bdata 备份目录
  bdata/safemod 安全模式下数据备份目录
  class/config.php 配置文件
  setsave 保存设置目录
  setsave/def 默认备份设置文件
  zip 压缩包存放目录
  tmp 临时文件目录
  第 3 步:登录后台
  请在浏览器中运行 index.php,即访问 http://您的域名/安装目录/index.php。
  (默认的管理员帐号与密码分别为:admin,123456)
  登录后自己修改帐号密码、验证随机码与数据库设置即可完成安装。
  2、进入 帝国备份王(EmpireBak) 进行参数设置并备份
  第 1步、参数设置。 如图:
使用 帝国备份王(EmpireBak) 完整准确的备份 Discuz! 网站数据库 三联
  第 2 步、 开始备份数据,各参数可根据自己的需求进行配置,这里使用默认的。如图:
b.jpg
  第 3 步、 设置好参数后拉到页面最下面点击【开始备份】,再点确定。
c.jpg
  第 4 步、 此时正在进行数据库备份了,数据量大的,一定要有耐心啊。
d.jpg
  第 5 步、 管理备份目录,打包下载到本地。如图:
e.jpg
  整个站点数据库备份完成咯!
  二、利用 帝国备份王 (EmpireBak) 恢复数据
  第 1 步、
  打开菜单进入恢复数据栏。
  恢复数据源目录:选择你之前最新备份数据库目录。
  要导入的数据库:选择你需要恢复到的数据库。
  点击 开始恢复 ,再点击 确定 即可!
  如图:
f.jpg
  第 2 步、
  点击确定开始恢复后,那就耐心的等待恢复,数据量大的,可能花的时间稍微长点。
g.jpg
  然后恢复好了。打开您的网站看看数据是否正常。
该扩展基于官方的微信公众平台SDK,这里只做了简单地封装,实现了一些基本的功能(如天气查询,翻译,自动聊天机器人,自定义菜单接口)仅供学习之用
源码:

 代码如下 复制代码
define("TOKEN", "xingans");

$wechatObj = new wechatCallbackapiTest();

$wechatObj->responseMsg();

class wechatCallbackapiTest
{
   //签名验证公共接口
   public function valid()
   {
       $echoStr = $_GET["echostr"];

       if($this->checkSignature()){
           echo $echoStr;
           exit;
       }
   }

   //主入口处理函数
   public function responseMsg()
   {
       $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

       if (!empty($postStr)){
                 
           $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
         
           $msgType=trim($postObj->MsgType);
         
           switch($msgType){
               case 'text':
                   $resultStr=$this->handleText($postObj);
                   break;
               case 'event':
                   $resultStr=$this->handleEvent($postObj);
                   break;
               default:
                   $resultStr=$this->handleDefault($postObj);
                   break;
           }
         
           echo $resultStr;
         
       }else {
           echo "Error";
           exit;
       }
   }
 
   //处理文本消息
      private function handleText($obj){
         
          $keyword=trim($obj->Content);
         
          if(preg_match('/天气/',$keyword)){
              $contentStr=$this->handleWeather($obj);
          }elseif(preg_match('/翻译/',$keyword)){
              $contentStr=$this->handleTranslation($obj);
          }else{
              $contentStr=$this->handleChat($obj);
          }
         
          return $this->handleStr($obj,$contentStr);
         
      }
     
      //处理天气
      private function handleWeather($obj){
          $keyword=mb_substr($obj->Content,-2,2,'utf-8');
          $zone=mb_substr($obj->Content,0,-2,'utf-8');
         
          if($keyword=='天气' && !empty($zone)){
         
              $zoneArr=json_decode(file_get_contents('http://api.k780.com:88/?app=weather.city&format=json'),true);
              $zoneArr=$zoneArr['result'];
             
              $cityId='';
             
              foreach($zoneArr as $value){
                  if($zone==$value['citynm']){
                      $cityId=$value['weaid'];
                      break;
                  }
              }
             
              if(!empty($cityId)){
                  $data=file_get_contents("http://api.k780.com:88/?app=weather.today&weaid=$cityId&appkey=10638&sign=3736578f099375665f9f141a6326b757&format=json");

                  $data=json_decode($data);
                 
                  $contentStr="今天是:".$data->result->days.",".$data->result-> week.",".$data->result->citynm."天气:".$data->result->weather."n温度:".$data->result->temperature.",
                  ".$data->result->wind_direction.",".$data->result->wind_power.", 最低温度:".$data->result->temp_low.",最高温度:".$data->result->temp_high;
              }else{
                  $contentStr='找不到输入的城市!';
              }  
             
          }else{
              $contentStr='输入的查询格式不正确!';
          }
         
          return $contentStr;
      }
     
      //处理翻译
      private function handleTranslation($obj){
          $keyword=mb_substr($obj->Content,0,2,'utf-8');
       $words=mb_substr($obj->Content,2,220,'utf-8');
     
       if($keyword=='翻译' && !empty($words)){
           $data=file_get_contents('http://fanyi.youdao.com/openapi.do?keyfrom=zfsblog&key=364295447&type=data&doctype=json&version=1.1&q='.urlencode($words));      
           $data=json_decode($data,true);
         
           switch($data['errorCode']){
               case '0':
                   $contentStr=$data['translation'][0];
                   break;
               case '20':
                   $contentStr='要翻译的文本过长';
                   break;
               case '30':
                   $contentStr='无法进行有效的翻译';
                   break;
               case '40':
                   $contentStr='不支持的语言类型';
                   break;
               case '50':
                   $contentStr='无效的key';
                   break;
               default:
                   $contentStr='Error';
                   break;
           }
         
       }else{
           $contentStr='输入的翻译格式不正确!';
       }
     
       return $contentStr;
      }
     
      //处理聊天信息
      private function handleChat($obj){
          $keywords=$obj->Content;
         
          $curlPost=array("chat"=>$keywords);
 
       $ch = curl_init();//初始化curl
       curl_setopt($ch, CURLOPT_URL,'http://www.xiaojo.com/bot/chata.php');//抓取指定网页
       curl_setopt($ch, CURLOPT_HEADER, 0);//设置header
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
       curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
       curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
       $data = curl_exec($ch);//运行curl
       curl_close($ch);
     
       if(!empty($data)){
           $contentStr=$data;
       }else{
           $ran=rand(1,5);
         
           switch($ran){
               case 1:
                   $contentStr= "小九今天累了,明天再陪你聊天吧";
                   break;
               case 2:
                   $contentStr= "小九睡觉喽~~";
                   break;
               case 3:
                   $contentStr= "呼呼~~呼呼~~";
                   break;
               case 4:
                   $contentStr= "你话好多啊,不跟你聊了";
                   break;
               case 5:
                   $contentStr= "你话好多啊,不跟你聊了";
                   break;
           }
       }
     
       return $contentStr;
      }
     
      //创建自定义菜单
      public function createMenu($data,$token){
          $ch = curl_init();
     
        curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$token);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
       
        $result = curl_exec($ch);    
       
        curl_close($ch);
       
        return $result;
      }
     
      //查询自定义菜单
   function getMenu($token){
          $url="https://api.weixin.qq.com/cgi-bin/menu/get?access_token=$token";
         
          $ch = curl_init($url);
         
       curl_setopt($ch, CURLOPT_RETURNTRANSFER,true) ; //获取数据返回
       curl_setopt($ch, CURLOPT_BINARYTRANSFER,true) ; //在启用 CURLOPT_RETURNTRANSFER 时候将获取数据返回  
       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
     
       return $output = curl_exec($ch);      
      }
     
      //删除自定义菜单
      public function deleteMenu($token){
          $url="https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".$token;
 
       $ch = curl_init();
     
       curl_setopt($ch, CURLOPT_URL, $url);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

       $result = curl_exec($ch);
     
       curl_close($ch);
     
       return $result;
      }

     
      //处理事件消息
      private function handleEvent($obj){
   
          $content='';
         
          switch($obj->Event){
              case 'subscribe':
                  $content.="welcome-欢迎关注该公众号号!";
                  break;
              case 'unsubscribe':
                  $content.="感谢您一直以来对该公众号的关注,再见!";
                  break;
              default:
                  $content.="";
                  break;
          }
         
          return $this->handleStr($obj,$content);
      }
     
      //处理回复消息字符串
      private function handleStr($obj,$content='',$flag=0){
       $textTpl = "
                       
                       
                       %s
                       
                       
                       %d
                       
";
         
          return sprintf($textTpl, $obj->FromUserName, $obj->ToUserName, time(), $content,$flag);
      }
 
   //签名验证函数
   private function checkSignature()
   {
       $signature = $_GET["signature"];
       $timestamp = $_GET["timestamp"];
       $nonce = $_GET["nonce"];  
             
       $token = TOKEN;
       $tmpArr = array($token, $timestamp, $nonce);
       sort($tmpArr, SORT_STRING);
       $tmpStr = implode( $tmpArr );
       $tmpStr = sha1( $tmpStr );
     
       if( $tmpStr == $signature ){
           return true;
       }else{
           return false;
       }
   }
}

?>

测试结果:
基于微信公众平台开发SDK(demo)扩展例子
基于微信公众平台开发SDK(demo)扩展例子
基于微信公众平台开发SDK(demo)扩展例子
基于微信公众平台开发SDK(demo)扩展例子
基于微信公众平台开发SDK(demo)扩展例子
基于微信公众平台开发SDK(demo)扩展例子
本篇文章主要说明的是在php中,如何获取一个数组的第一个数组单元的值的方法。在php的内置函数中,获取数组元素值的函数主要有 reset next current prev end 这几个函数

reset (PHP 3, PHP 4, PHP 5)

函数定义 mixed reset ( array &array )

作用:该函数将 array 的内部指针倒回到第一个单元并返回第一个数组单元的值,如果数组为空则返回 FALSE。例如:

 

 代码如下 复制代码

<?php

$array=array('step one','step two','step three','step four');

echo reset($array);

//输出:step one
next (PHP 3, PHP 4, PHP 5)

函数定义 mixed next ( array &array )

作用:返回数组内部指针指向的下一个单元的值,或当没有更多单元时返回 FALSE。例如:

 代码如下 复制代码

<?php
$array=array('step one','step two','www','phpernote.com','step four');
echo next($array);


//输出:step two
警告:如果数组包含空的单元,或者单元的值是 0 则本函数碰到这些单元也返回 FALSE。要正确遍历可能含有空单元或者单元值为 0 的数组,参见 each() 函数。

current (PHP 3, PHP 4, PHP 5)

函数定义 mixed current ( array &array )

作用:返回当前被内部指针指向的数组单元的值,并不移动指针。初始指向插入到数组中的第一个单元。如果内部指针指向超出了单元列表的末端,current() 返回 FALSE。

警告:如果数组包含有空的单元(0 或者 "",空字符串)则本函数在碰到这个单元时也返回 FALSE。这使得用 current() 不可能判断是否到了此数组列表的末端。要正确遍历可能含有空单元的数组,用 each() 函数。

next() 和 current() 的行为类似,只有一点区别,在返回值之前将内部指针向前移动一位。这意味着它返回的是下一个数组单元的值并将数组指针向前移动了一位。如果移动指针的结果是超出了数组单元的末端,则 next() 返回 FALSE。

下面是相关函数的使用例子:

 代码如下 复制代码

<?php
$transport = array('foot', 'www', 'car', 'phpernote','com');
$mode = current($transport); // $mode = 'foot';
$mode = next($transport); // $mode = 'www';
$mode = next($transport); // $mode = 'car';
$mode = prev($transport); // $mode = 'www';
$mode = end($transport); // $mode = 'com';
$mode = current($transport); // $mode = 'com';
$mode = reset($transport); // $mode = 'foot';

[!--infotagslink--]

相关文章

  • php读取zip文件(删除文件,提取文件,增加文件)实例

    下面小编来给大家演示几个php操作zip文件的实例,我们可以读取zip包中指定文件与删除zip包中指定文件,下面来给大这介绍一下。 从zip压缩文件中提取文件 代...2016-11-25
  • 使用PHP+JavaScript将HTML页面转换为图片的实例分享

    这篇文章主要介绍了使用PHP+JavaScript将HTML元素转换为图片的实例分享,文后结果的截图只能体现出替换的字体,也不能说将静态页面转为图片可以加快加载,只是这种做法比较interesting XD需要的朋友可以参考下...2016-04-19
  • Jupyter Notebook读取csv文件出现的问题及解决

    这篇文章主要介绍了JupyterNotebook读取csv文件出现的问题及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2023-01-06
  • JavaScript判断浏览器及其版本信息

    本篇文章主要分享了通过window.navigator来判断浏览器及其版本信息的实例代码。具有一定的参考价值,下面跟着小编一起来看下吧...2017-01-23
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Photoshop古装美女图片转为工笔画效果制作教程

    今天小编在这里就来给各位Photoshop的这一款软件的使用者们来说说把古装美女图片转为细腻的工笔画效果的制作教程,各位想知道方法的使用者们,那么下面就快来跟着小编一...2016-09-14
  • Python 图片转数组,二进制互转操作

    这篇文章主要介绍了Python 图片转数组,二进制互转操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-09
  • Photoshop打开PSD文件空白怎么解决

    有时我们接受或下载到的PSD文件打开是空白的,那么我们要如何来解决这个 问题了,下面一聚教程小伙伴就为各位介绍Photoshop打开PSD文件空白解决办法。 1、如我们打开...2016-09-14
  • 利用JS实现点击按钮后图片自动切换的简单方法

    下面小编就为大家带来一篇利用JS实现点击按钮后图片自动切换的简单方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧...2016-10-25
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 解决python 使用openpyxl读写大文件的坑

    这篇文章主要介绍了解决python 使用openpyxl读写大文件的坑,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-13
  • C#实现HTTP下载文件的方法

    这篇文章主要介绍了C#实现HTTP下载文件的方法,包括了HTTP通信的创建、本地文件的写入等,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮

    jquery左右滚动焦点图banner图片鼠标经过显示上下页按钮...2013-10-13
  • SpringBoot实现excel文件生成和下载

    这篇文章主要为大家详细介绍了SpringBoot实现excel文件生成和下载,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-02-09
  • js实现上传图片及时预览

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下...2016-05-09
  • php无刷新利用iframe实现页面无刷新上传文件(1/2)

    利用form表单的target属性和iframe 一、上传文件的一个php教程方法。 该方法接受一个$file参数,该参数为从客户端获取的$_files变量,返回重新命名后的文件名,如果上传失...2016-11-25
  • 一个奇葩的最短的 IE 版本判断JS脚本

    使用 conditional comment 来判断 IE 的版本。嗯,是早早有人提出,但没有认真看代码。昨天刚好在看 CSS3 PIE 的时候看到,觉得是不是不靠谱。今天看到 Paul Irish 也提起,那么,推荐一下吧。这是作者博客上写的:复制代码 代码...2014-05-31
  • Photoshop枪战电影海报图片制作教程

    Photoshop的这一款软件小编相信很多的人都已经是使用过了吧,那么今天小编在这里就给大家带来了用Photoshop软件制作枪战电影海报的教程,想知道制作步骤的玩家们,那么下面...2016-09-14
  • php批量替换内容或指定目录下所有文件内容

    要替换字符串中的内容我们只要利用php相关函数,如strstr,str_replace,正则表达式了,那么我们要替换目录所有文件的内容就需要先遍历目录再打开文件再利用上面讲的函数替...2016-11-25