php筛选不存在的图片资源

方法一:

最简单的方法就是用fopen(),看看文件能否打开,能打就文件当然就存在。

<?php
$url = 'http://www.jb51.net/images/test.jpg';

if( @fopen( $url, 'r' ) )
{
 echo 'File Exits';
}
else
{
 echo 'File Do Not Exits';
}
?>

方法二:

/**
   * 筛选不存在的图片资源
   *
   * @author wanggeng <wanggeng123@vip.qq.com>
   * @return vodi
   */ 

  private static function _checkAll($url)
  {
    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_NOBODY, true);
    $result = false;
    $res = curl_exec($curl);
    if ($res !== false){
      $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
      if($statusCode == 200) {
        $result = true;
      }
    }
    curl_close($curl);
    return $result;
  }

首先建立一个curl链接到执行的url也就是图片或者文件的链接
初始一个变量为false
或者打开链接的head头信息 每一个http请求都会有一个http Code
我们就根据这个code去验证
如果返回code 是200 证明资源存在 给之前的变量一个true的值 否则不予赋值

方法三:

CURL 方法

CURL是个很好用的类库,下面看下如何用它来判断。

<?php
$url2 = 'http://www.jb51.net/test.jpg';

$ch = curl_init();
$timeout = 10;
curl_setopt ($ch, CURLOPT_URL, $url2);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$contents = curl_exec($ch);
//echo $contents;
if (preg_match("/404/", $contents)){
 echo '文件不存在';
}
?>

curl_exec()执行完之后如果文件不存在,会返回如下信息:

HTTP/1.1 404 Not Found
Date: Tue, 14 Feb 2012 05:08:34 GMT
Server: Apache
Accept-Ranges: bytes
Content-Length: 354
Content-Type: text/html

用正则看看是否有404,有的话文件就不存在。

以上所述就是本文的全部内容了,希望大家能够喜欢。

(0)

相关推荐

  • php+html5使用FormData对象提交表单及上传图片的方法

    本文实例讲述了php+html5使用FormData对象提交表单及上传图片的方法.分享给大家供大家参考.具体分析如下: FormData 对象,可以把form中所有表单元素的name与value组成一个queryString,提交到后台.在使用Ajax提交时,使用FormData对象可以减少拼接queryString的工作量. 使用FormData对象 1.创建一个FormData空对象,然后使用append方法添加key/value 复制代码 代码如下: var formdata = new

  • PHP限制HTML内容中图片必须是本站的方法

    本文实例讲述了PHP限制HTML内容中图片必须是本站的方法.分享给大家供大家参考.具体实现方法如下: 1. PHP代码如下: <?php $dom = new DOMDocument; $dom->loadHTML(file_get_contents('input.html')); $xpath = new DOMXpath($dom); $img = $xpath->query('//img'); foreach($img as $i) { $url = parse_url($i-&g

  • PHP获取远程图片并保存到本地的方法

    本文实例讲述了PHP获取远程图片并保存到本地的方法.分享给大家供大家参考.具体实现方法如下: <?php function GrabImage($url, $filename = "") { if ($url == ""):return false; endif; //如果$url地址为空,直接退出 if ($filename == "") { //如果没有指定新的文件名 $ext = strrchr($url, "."

  • php实现随机显示图片方法汇总

    php通过rand()函数产生随机数,这个函数可以产生一个指定范围的数字 这段代码通过产生的随机数,随机选择图片 <html> <body> <?php srand( microtime() * 1000000 ); $num = rand( 1, 4 ); switch( $num ) { case 1: $image_file = "/home/images/alfa.jpg"; break; case 2: $image_file = "/

  • php生成图片验证码

    先给看下 大致的效果 那么接下来的就直接贴代码吧 <?php $image = imagecreatetruecolor(100, 30); //创建画布 $imagecolor = imagecolorallocate($image, 255, 255, 255); //背景色 imagefill($image, 0, 0, $imagecolor); //填充背景色 for($i=0;$i<4;$i++ ){ //循环4位数 $fontsize = 6; $fontcolor = imag

  • php使用GD库创建图片缩略图的方法

    本文实例讲述了php使用GD库创建图片缩略图的方法.分享给大家供大家参考.具体分析如下: 上传页面的静态html代码: <html> <head> <title>文件上传</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <H1>文件上传</H1> &l

  • php实现在服务器端调整图片大小的方法

    本文实例讲述了php实现在服务器端调整图片大小的方法.分享给大家供大家参考.具体分析如下: 在服务器端完成图片大小的调整,会比在浏览器的处理有很多的好处. 本文介绍了PHP如何在服务器端调整图片大小. 代码包括两部分: ① imageResizer() is used to process the image ② loadimage() inserts the image url in a simpler format <?php function imageResizer($url, $wid

  • php实现修改新闻时删除图片的方法

    本文实例讲述了php实现修改新闻时删除图片的方法.分享给大家供大家参考.具体实现方法如下: //old_contents:待修改的公告内容; //$content:修改后的公告内容 $oldPic=array(); $nowPic=array(); preg_match_all("/\<IMG(.*?)src=\"(.*?)\">/",$old_contents,$match); if(!empty($match[2])){ foreach($match

  • php修改上传图片尺寸的方法

    本文实例讲述了php修改上传图片尺寸的方法.分享给大家供大家参考.具体实现方法如下: <?php // This is the temporary file created by PHP $uploadedfile = $_FILES['uploadfile']['tmp_name']; // Create an Image from it so we can do the resize $src = imagecreatefromjpeg($uploadedfile); // Capture

  • php筛选不存在的图片资源

    方法一: 最简单的方法就是用fopen(),看看文件能否打开,能打就文件当然就存在. <?php $url = 'http://www.jb51.net/images/test.jpg'; if( @fopen( $url, 'r' ) ) { echo 'File Exits'; } else { echo 'File Do Not Exits'; } ?> 方法二: /** * 筛选不存在的图片资源 * * @author wanggeng <wanggeng123@vip.qq.c

  • angularJs使用$watch和$filter过滤器制作搜索筛选实例

    整理文档,搜刮出一个angularJs使用$watch和$filter过滤器制作搜索筛选,稍微整理精简一下做下分享. <div ng-app="module" ng-controller="ctrl"> 搜索: <input type="text" ng-model="search"> <table border="1" width="600"> &l

  • PowerShell使用match操作符来筛选数组

    先看下面这个例子: PS C:\Users\Hong> (ipconfig) -match 'IPv4' IPv4 地址 . . . . . . . . . . . . : 192.168.1.102 IPv4 地址 . . . . . . . . . . . . : 192.168.193.1 IPv4 地址 . . . . . . . . . . . . : 192.168.93.1 我们知道ipconfig是显示当前计算机的TCP/IP配置信息的,其中有一项是IP地址.如果有多个网卡,或者

  • PowerShell中使用Get-EventLog读取、筛选系统日志的例子

    本文介绍使用PowerShell读取系统日志,可以按日志名称.日志类型.时间等多个因素进行筛选.PowerShell中提供了一个叫Get-EventLog的cmdlet,使用它可以读取系统日志. 运行一下这个Get-EventLog的cmdlet试一下: 复制代码 代码如下: PS C:\Users\zhanghong> Get-EventLog -LogName System 噢!如果你感觉你被小编害了,cmd窗口一直在滚动个不停,那么按Ctrl+C先把它停下来.然后我解释一下,之所以发生这样

  • 探索PowerShell(十二) 筛选器 Filters

    筛选器是函数的一种特殊形式. 定义筛选器: Filter(关键字) 筛选器名 (参数) {代码} 与定义函数不同的是,函数使用"$input"变量来从管道符中获取信息,而筛选器使用的是变量"$_".在对数据的处理方面,函数与筛选器也有着不同,在函数中,"$input"变量会接受所有的信息,再进行运算,而在筛选器中,"$_"变量会一边接受来自管道符的信息,一边进行筛选(运算)操作. 总结说来,对于函数:管道符将数据一次以集合方式

  • PowerShell中使用正则表达式筛选数组实例

    本文介绍PowerShell中使用match操作符,配合正则表达式从数组中筛选出想要的内容. 先看下面这个例子: 复制代码 代码如下: PS C:\Users\Hong> (ipconfig) -match 'IPv4'    IPv4 地址 . . . . . . . . . . . . : 192.168.1.102    IPv4 地址 . . . . . . . . . . . . : 192.168.193.1    IPv4 地址 . . . . . . . . . . . . :

  • sql连接查询语句中on、where筛选的区别总结

    前言 相信对于每位程序员来说,sql查询这个东西, 要说它简单, 可以很简单, 通常情况下只需使用增删查改配合编程语言的逻辑表达能力,就能实现所有功能. 但是增删查改并不能代表sql语句的所有, 完整的sql功能会另人望而生畏. 就拿比普通增删查改稍微复杂一个层次的连接查询来说, 盲目使用, 也会出现意料之外的危险结果,导致程序出现莫名其妙的BUG. 在连接查询语法中,另人迷惑首当其冲的就要属on筛选和where筛选的区别了, 在我们编写查询的时候, 筛选条件的放置不管是在on后面还是where

  • MySql中having字句对组记录进行筛选使用说明

    having的用法 having字句可以让我们筛选成组后的各种数据,where字句在聚合前先筛选记录,也就是说作用在group by和having字句前.而 having子句在聚合后对组记录进行筛选. SQL实例: 一.显示每个地区的总人口数和总面积 SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region 先以region把返回记录分成多个组,这就是GROUP BY的字面含义.分完组后,然后用聚合函数对每组中的不同字段

  • Jquery 1.9.1源码分析系列(十二)之筛选操作

    废话不多说了直接奔入主题了. jQuery.fn.find( selector ) find接受一个参数表达式selector:选择器(字符串).DOM元素(Element).jQuery对象.分两种情况处理: 第一种,如果传入的参数是非字符串,则先通过jQuery选择器将selector查找出来,然后过滤出包含于当前jQuery对象所匹配的元素的节点. if ( typeof selector !== "string" ) { self = this; return this.pus

  • jQuery选择器之属性筛选选择器用法详解

    在这么多属性选择器中[attr="value"]和[attr*="value"]是最实用的 [attr="value"]能帮我们定位不同类型的元素,特别是表单form元素的操作,比如说input[type="text"],input[type="checkbox"]等 [attr*="value"]能在网站中帮助我们匹配不同类型的文件 <!DOCTYPE html> <

随机推荐