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 相关文章推荐
PHP 分页原理分析,大家可以看看
Dec 21 PHP
在PHP中养成7个面向对象的好习惯
Jan 28 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
Jun 01 PHP
php匹配字符中链接地址的方法
Dec 22 PHP
PHP实现冒泡排序的简单实例
May 26 PHP
PHP实现bitmap位图排序与求交集的方法
Jul 28 PHP
PHP二分查找算法示例【递归与非递归方法】
Sep 29 PHP
PHP调用API接口实现天气查询功能的示例
Sep 21 PHP
php+redis消息队列实现抢购功能
Feb 08 PHP
Yii框架日志记录Logging操作示例
Jul 12 PHP
PHP利用Mysql锁解决高并发的方法
Sep 04 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 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
PHP HTML代码串 截取实现代码
2009/06/29 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
采用thinkphp自带方法生成静态html文件详解
2014/06/13 PHP
php通过排列组合实现1到9数字相加都等于20的方法
2015/08/03 PHP
jQuery 获取对象 定位子对象
2010/05/31 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
JS获取DropDownList的value值与text值的示例代码
2014/01/07 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
浅谈js中StringBuffer类的实现方法及使用
2016/09/02 Javascript
JavaScript中Number对象的toFixed() 方法详解
2016/09/02 Javascript
AngularJs Managing Service Dependencies详解
2016/09/02 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
nodejs实现套接字服务功能详解
2018/06/21 NodeJs
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
nuxt.js服务端渲染中axios和proxy代理的配置操作
2020/11/06 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
利用Python获取赶集网招聘信息前篇
2016/04/18 Python
Python 微信爬虫完整实例【单线程与多线程】
2019/07/06 Python
YUV转为jpg图像的实现
2019/12/09 Python
Python 读取有公式cell的结果内容实例方法
2020/02/17 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
服务行业个人求职的自我评价
2013/12/12 职场文书
教师见习期自我鉴定
2014/04/28 职场文书
竞赛口号大全
2014/06/16 职场文书
党员群众路线教育实践活动剖析材料
2014/10/10 职场文书
2014年团支书工作总结
2014/11/14 职场文书
学生上课迟到检讨书
2015/01/01 职场文书
公司档案管理制度
2015/08/05 职场文书
MySql子查询IN的执行和优化的实现
2021/08/02 MySQL
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript