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 23 PHP
PHP中通过加号合并数组的一个简单方法分享
Jan 27 PHP
PHP实现的比较完善的购物车类
Dec 02 PHP
PHP5多态性与动态绑定介绍
Apr 03 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
Oct 22 PHP
修改PHP脚本使WordPress拦截垃圾评论的方法示例
Dec 10 PHP
php 实现一个字符串加密解密的函数实例代码
Nov 01 PHP
PHP使用PDO抽象层获取查询结果的方法示例
May 10 PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 PHP
PHP iconv()函数字符编码转换的问题讲解
Mar 22 PHP
gearman中任务的优先级和返回状态实例分析
Feb 27 PHP
php7 参数、整形及字符串处理机制修改实例分析
May 25 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遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
php与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
php网站被挂木马后的修复方法总结
2014/11/06 PHP
php实现的日历程序
2015/06/18 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
取得父标签
2006/11/14 Javascript
js 金额文本框实现代码
2012/02/14 Javascript
简单的Jquery遮罩层代码实例
2013/11/14 Javascript
js设置function参数默认值(适合没有传参情况)
2014/02/24 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
js中bool值的转换及“&amp;&amp;”、“||”、 “!!”详解
2017/12/21 Javascript
js实现左右两侧浮动广告
2018/07/09 Javascript
解决element UI 自定义传参的问题
2018/08/22 Javascript
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
Vue 事件处理操作实例详解
2019/03/05 Javascript
Vue获取页面元素的相对位置的方法示例
2020/02/05 Javascript
浅析Python中的序列化存储的方法
2015/04/28 Python
详解Python中for循环的使用方法
2015/05/14 Python
Python正则表达式完全指南
2017/05/25 Python
python读取Excel实例详解
2018/08/17 Python
Python实现蒙特卡洛算法小实验过程详解
2019/07/12 Python
Python爬取腾讯视频评论的思路详解
2019/12/19 Python
pytorch点乘与叉乘示例讲解
2019/12/27 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
2020/02/07 Python
Django重设Admin密码过程解析
2020/02/10 Python
Python3使用xlrd、xlwt处理Excel方法数据
2020/02/28 Python
RIP版本1跟版本2的区别
2013/12/30 面试题
幼儿园开学家长寄语
2014/01/19 职场文书
企业文明单位申报材料
2014/05/16 职场文书
工作证明格式及范本
2014/09/12 职场文书
4S店客服专员岗位职责
2015/04/07 职场文书
交通安全教育主题班会
2015/08/12 职场文书
Java 超详细讲解ThreadLocal类的使用
2022/04/07 Java/Android
clear 万能清除浮动(clearfix:after)
2023/05/21 HTML / CSS