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 相关文章推荐
基于文本的搜索
Oct 09 PHP
MYSQL环境变量设置方法
Jan 15 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 PHP
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
Aug 18 PHP
php获取数组中重复数据的两种方法
Jun 28 PHP
PHP set_error_handler()函数使用详解(示例)
Nov 12 PHP
php检测用户是否用手机(Mobile)访问网站的类
Jan 09 PHP
PHP、Nginx、Apache中禁止网页被iframe引用的方法
Oct 01 PHP
php实现按天数、星期、月份查询的搜索框
May 02 PHP
PHP利用二叉堆实现TopK-算法的方法详解
Apr 24 PHP
thinkPHP框架中执行事务的方法示例
May 31 PHP
laravel 实现用户登录注销并限制功能
Oct 24 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类中private属性继承问题分析
2012/11/01 PHP
解析:php调用MsSQL存储过程使用内置RETVAL获取过程中的return值
2013/07/03 PHP
用javascript实现无刷新更新数据的详细步骤 asp
2006/12/26 Javascript
javascript的对话框详解与参数
2007/03/08 Javascript
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
jquery插件orbit.js实现图片折叠轮换特效
2015/04/14 Javascript
JavaScript Window浏览器对象模型方法与属性汇总
2015/04/20 Javascript
js/jquery判断浏览器类型的方法小结
2015/05/12 Javascript
jQuery实现鼠标滑向当前图片高亮显示并且其它图片变灰的方法
2015/07/27 Javascript
JavaScript浏览器对象模型BOM(BrowserObjectModel)实例详解
2016/11/29 Javascript
JavaScript的六种继承方式(推荐)
2017/06/26 Javascript
关于TypeScript中import JSON的正确姿势详解
2017/07/25 Javascript
vue-router 权限控制的示例代码
2017/09/21 Javascript
js导出Excel表格超出26位英文字符的解决方法ES6
2017/11/15 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
Vue+Openlayers自定义轨迹动画
2020/09/24 Javascript
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
用Python将mysql数据导出成json的方法
2018/08/21 Python
详解python-图像处理(映射变换)
2019/03/22 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
Python matplotlib以日期为x轴作图代码实例
2019/11/22 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
2019/12/25 Python
使用Python下载抖音各大V视频的思路详解
2021/02/06 Python
python的scipy.stats模块中正态分布常用函数总结
2021/02/19 Python
JD Sports意大利:英国篮球和运动时尚的领导者
2017/10/29 全球购物
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
什么是serialVersionUID
2016/03/04 面试题
Linux的主要特性
2016/09/03 面试题
应届生骨科医生求职信
2013/10/31 职场文书
机关作风建设自查报告
2014/10/22 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
大学生社会服务心得体会
2016/01/22 职场文书
《悬崖边的树》读后感2篇
2019/12/02 职场文书
《家庭教育》读后感3篇
2019/12/18 职场文书
《王国之心》迎来了发售的20周年, 野村哲发布贺图
2022/04/11 其他游戏