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


Posted in PHP onOctober 08, 2011

解决办法:
使用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() 会解析相应的信息并设定数组的键名。 例如:

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

简单的例子:
<?php 
$url = "/upload/201110/20111008192257383.gif"; 
$array = get_headers($url,1); 
if(preg_match('/200/',$array[0])){ 
echo "<pre/>"; 
print_r($array); 
}else{ 
echo "无效url资源!"; 
}

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

测试结果:

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

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

优点缺点:
需要allow_url_fopen=on 开启,有点和file_get_contents函数使用条件类似,但是返回值比较少,可以使用
function_exists判断该方法是否可以使用

PHP 相关文章推荐
如何使用脚本模仿登陆过程
Nov 22 PHP
使用 MySQL Date/Time 类型
Mar 26 PHP
PHP通用分页类page.php[仿google分页]
Aug 31 PHP
linux下为php添加curl扩展的方法
Jul 29 PHP
php打造属于自己的MVC框架
Mar 07 PHP
php xml常用函数的集合(比较详细)
Jun 06 PHP
windows环境下php配置memcache的具体操作步骤
Jun 09 PHP
PHP扩展模块Pecl、Pear以及Perl的区别
Apr 09 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
PHP中字符安全过滤函数使用小结
Feb 25 PHP
关于php微信订阅号开发之token验证后自动发送消息给订阅号但是没有消息返回的问题
Dec 21 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
php下利用curl判断远程文件是否存在的实现代码
Oct 08 #PHP
PHP下判断网址是否有效的代码
Oct 08 #PHP
Admin generator, filters and I18n
Oct 06 #PHP
如何在symfony中导出为CSV文件中的数据
Oct 06 #PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
Oct 03 #PHP
linux iconv方法的使用
Oct 01 #PHP
linux系统上支持php的 iconv()函数的方法
Oct 01 #PHP
You might like
mysql5写入和读出乱码解决
2006/11/25 PHP
在PHP中使用模板的方法
2008/05/24 PHP
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
html读出文本文件内容
2007/01/22 Javascript
11款基于Javascript的文件管理器
2009/10/25 Javascript
js更优雅的兼容
2010/08/12 Javascript
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
打造自己的jQuery插件入门教程
2016/09/23 Javascript
利用Vue.js实现checkbox的全选反选效果
2017/01/18 Javascript
vue-router:嵌套路由的使用方法
2017/02/21 Javascript
JS使用正则表达式验证身份证号码
2017/06/23 Javascript
基于javascript中的typeof和类型判断(详解)
2017/10/27 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
JS实现倒序输出的几种常用方法示例
2019/04/13 Javascript
JavaScript实现打砖块游戏
2020/02/25 Javascript
Vue实现手机计算器
2020/08/17 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
使用Python的PEAK来适配协议的教程
2015/04/14 Python
Python中str.join()简单用法示例
2018/03/20 Python
对Python中的条件判断、循环以及循环的终止方法详解
2019/02/08 Python
python写入文件自动换行问题的方法
2019/07/05 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
html5 Canvas绘制线条 closePath()实例代码
2012/05/10 HTML / CSS
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
房地产经营管理专业自荐信
2014/09/02 职场文书
运动会铅球比赛加油稿
2014/09/26 职场文书
个人房屋转让协议书范本
2014/10/26 职场文书
家属答谢词
2015/01/05 职场文书
小学数学国培研修日志
2015/11/13 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书
spring 项目实现限流方法示例
2022/07/15 Java/Android