PHP判断远程url是否有效的几种方法

   前提

  需要判断远程URL是否有效,远程url包括远程图片,网页,视频等等元素

  解决办法:

  使用PHP解决

  使用file_get_contents函数,不过优缺点如果url无法访问,会出现终止程序问题

  使用curl返回,然后判断是否正确执行

  使用get_headers函数,根据HTTP返回值查看是否有200

  使用js解决:

  使用原生的js函数ActiveXObject,仅支持ie内核的浏览器

  使用jq扩展

  本文主要介绍PHP解决办法中的第三种,这个方法很少用到,但是感觉又起来还不错,

  get_headers需要支持

  php_openssl支持 查看phpinfo看看是否开启

  allow_url_fopen=on 修改php.ini,运行使用远程打开

  函数介绍:

  array get_headers ( string $url [, int $format ] )

  get_headers() 返回一个数组,包含有服务器响应一个 HTTP 请求所发送的标头。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息。

  如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。 例如:


  简单的例子:

  $url = "http://cn.php.net/images/php.gif";

  $array = get_headers($url,1);

  if(preg_match('/200/',$array[0])){

  echo "

  ";

  print_r($array);

  }else{

  echo "无效url资源!";

  }

  解释:判断远程图片ur是否有效,根据返回值HTTP中是否有200信息,判断是否是有效url资源

  测试结果:


  可以看到正确返回 -----------------------测试ok

  优点缺点:

  需要allow_url_fopen=on 开启,有点和file_get_contents函数使用条件类似,但是返回值比较少,可以使用

  function_exists判断该方法是否可以使用

时间: 2024-09-15 20:41:03

PHP判断远程url是否有效的几种方法的相关文章

PHP判断远程图片是否存在的几种方法

  这篇文章主要介绍了PHP判断远程图片是否存在的几种方法,需要的朋友可以参考下 在做一个图片预览中图的东西,遇到一个问题,就是要判断远程文件是否存在(不是同一台服务器). 代码如下: 代码如下: //方法一 function file_exists($url) { $ch = curl_init(); curl_setopt($ch, curlopt_url,$url); curl_setopt($ch, curlopt_nobody, 1); // 不下载 curl_setopt($ch,

PHP判断远程图片是否存在的几种方法_php技巧

在做一个图片预览中图的东西,遇到一个问题,就是要判断远程文件是否存在(不是同一台服务器).代码如下: 复制代码 代码如下: //方法一function file_exists($url){$ch = curl_init();curl_setopt($ch, curlopt_url,$url);curl_setopt($ch, curlopt_nobody, 1); // 不下载curl_setopt($ch, curlopt_failonerror, 1);curl_setopt($ch, cu

asp.net下检测远程URL是否存在的三种方法_实用技巧

复制代码 代码如下: private void Page_Load(object sender, System.EventArgs e) { string url1 = "http://s.jb51.net/"; string url2 = "yun_qi_img/logo.gif"; Response.Write("<li>方法1:"); Response.Write(url1 + " 存在:" + UrlExi

js判断url是否有效的两种方法

本篇文章主要是对js判断url是否有效的两种方法进行了详细的介绍,需要的朋友可以过来参考下,希望对大家有所帮助 方法一:(仅适用于ie)    代码如下: function CheckStatus(url)         {             XMLHTTP = new ActiveXObject("Microsoft.XMLHTTP")             XMLHTTP.open("HEAD",url,false)             XMLHT

js判断字符是否是汉字的两种方法小结

 本篇文章主要是对js判断字符是否是汉字的两种方法进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助 有时需要判断一个字符是不是汉字,比如在用户输入含有中英文的内容时,需要判断是否超过规定长度就要用到.用 Javascript 判断通常有两种方法.    1.用正则表达式判断    代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org

防止远程软件盗窃硬盘数据的3种方法

防止远程软件盗窃硬盘数据的3种方法 来源:华军资讯 发布日期:10-09-30 编辑: 很多时候当一台计算机中毒以后,我们的远控软件就会查看到你硬盘的重要数据,从而将之盗取.我们怎么防止这种情况出现呢?其实您可以把硬盘加密码.但是如果入侵者用远控软件访问就不需要输入密码,直接就能访问到你的硬盘. 方法一: 运行regedit命令 进入HKEY_CURRENT_USERSoftWareMicrosoftWindowsCurrentVersionPolicieplorer分支中.在右窗口中新建一个二

使用JavaScript获取URL中的参数(两种方法)_javascript技巧

本文给大家分享两种方法使用js获取url中的参数,其中方法二是使用的正则表达式方法,大家可以根据需要选择比较好的方法,废话不多说了,直接看详细介绍吧. 方法一: //取url参数 var type = request("type") function request() { var query = location.search; var paras = arguments[0]; if (arguments.length == 2) { query = arguments[1]; }

MYSQL添加远程用户或允许远程访问三种方法

mysql教程添加远程用户或允许远程访问三种方法 用root用户登陆,然后: grant all privileges on *.* to 创建的用户名 @"%" identified by "密码"; flush privileges;   * 刷新刚才的内容* 格式:grant 权限 on 数据库教程名.表名 to 用户@登录主机 identified by "用户密码";             @ 后面是访问mysql的客户端ip地址(或

Android判断后台服务是否开启的两种方法实例详解

Android判断后台服务是否开启的两种方法实例详解 最近项目用到后台上传,就开启了一个服务service. 但是刚开始用这种方法,有些机型不支持:酷派不支持.然后又换了第二种判断方法. // public boolean isServiceWork(Context mContext, String serviceName) { // boolean isWork = false; // ActivityManager myAM = (ActivityManager) mContext // .