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
php 动态多文件上传
Jan 18 PHP
PHP下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
smarty 缓存控制前的页面静态化原理
Mar 15 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
php5.3 注意事项说明
Jul 01 PHP
PHP数据过滤的方法
Oct 30 PHP
php共享内存段示例分享
Jan 20 PHP
PHP面向对象精要总结
Nov 07 PHP
OAuth认证协议中的HMACSHA1加密算法(实例)
Oct 25 PHP
php使用自带dom扩展进行元素匹配的原理解析
May 29 PHP
PHP $O00OO0=urldecode &amp; eval 解密,记一次商业源码的去后门
Sep 13 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中使用crypt()实现用户身份验证的代码
2012/09/05 PHP
基于PHP5魔术常量与魔术方法的详解
2013/06/13 PHP
PHP中判断变量为空的几种方法分享
2013/08/26 PHP
PHP使用preg_split()分割特殊字符(元字符等)的方法分析
2017/02/04 PHP
Javascript 强制类型转换函数
2009/05/17 Javascript
jQuery 选择器理解
2010/03/16 Javascript
JavaScript入门之对象与JSON详解
2011/10/21 Javascript
JS完成代码前最好对其做5件事
2013/04/07 Javascript
js弹出确认是否删除对话框
2014/03/27 Javascript
node.js应用后台守护进程管理器Forever安装和使用实例
2014/06/01 Javascript
JavaScript使用focus()设置焦点失败的解决方法
2014/09/03 Javascript
jQuery简单操作cookie的插件实例
2016/01/13 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
2016/09/02 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
vue实现移动端返回顶部
2020/10/12 Javascript
详解JavaScript类型判断的四种方法
2020/10/21 Javascript
[49:43]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python实现的简单FTP上传下载文件实例
2015/06/30 Python
django实现同一个ip十分钟内只能注册一次的实例
2017/11/03 Python
python实现对文件中图片生成带标签的txt文件方法
2018/04/27 Python
python numpy和list查询其中某个数的个数及定位方法
2018/06/27 Python
Python实现曲线拟合操作示例【基于numpy,scipy,matplotlib库】
2018/07/12 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
python 读取修改pcap包的例子
2019/07/23 Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
2019/10/21 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
利用Python中的Xpath实现一个在线汇率转换器
2020/09/09 Python
python中如何打包用户自定义模块
2020/09/23 Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
2021/02/24 Python
html5实现图片转圈的动画效果——让页面动起来
2017/10/16 HTML / CSS
美国羽绒床上用品第一品牌:Pacific Coast
2018/08/25 全球购物
初二物理教学反思
2014/01/29 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书