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函数(简单整理)
Apr 30 PHP
PHP远程采集图片详细教程
Jul 01 PHP
php使用Image Magick将PDF文件转换为JPG文件的方法
Apr 01 PHP
开启PHP的伪静态模式
Dec 31 PHP
PHP中如何防止外部恶意提交调用ajax接口
Apr 11 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
Jul 20 PHP
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
Nov 16 PHP
PHP面向对象之事务脚本模式(详解)
Jun 07 PHP
php7安装yar扩展的方法详解
Aug 03 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 PHP
php在linux环境中如何使用redis详解
Dec 15 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函数eval()介绍和使用示例
2014/08/20 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
phpstudy2020搭建站点的实现示例
2020/10/30 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
JavaScript 变量作用域分析
2011/07/04 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
js随机生成字母数字组合的字符串 随机动画数字
2015/09/02 Javascript
JavaScript数组方法总结分析
2016/05/06 Javascript
jquery实现拖动效果
2016/08/10 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
JS实现图片手风琴效果
2020/04/17 Javascript
layui radio性别单选框赋值方法
2018/08/15 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
解决Vue的项目使用Element ui 走马灯无法实现的问题
2020/08/03 Javascript
[36:02]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第一局
2016/02/28 DOTA
Python运行的17个时新手常见错误小结
2012/08/07 Python
在Python中如何传递任意数量的实参的示例代码
2019/03/21 Python
django 2.2和mysql使用的常见问题
2019/07/18 Python
Keras - GPU ID 和显存占用设定步骤
2020/06/22 Python
python利用platform模块获取系统信息
2020/10/09 Python
浅谈CSS3中的变形功能-transform功能
2017/12/27 HTML / CSS
HTML5 用动画的表现形式装载图像
2016/03/08 HTML / CSS
加拿大花店:1800Flowers.ca
2016/11/16 全球购物
迎八一活动主题
2014/01/31 职场文书
教师敬业奉献模范事迹材料
2014/05/18 职场文书
外联部演讲稿
2014/05/24 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
党员转正介绍人意见
2015/06/03 职场文书
2016秋季小学开学寄语
2015/12/03 职场文书
青年教师听课心得体会
2016/01/15 职场文书
自荐信大全
2019/03/21 职场文书
领导激励员工的演讲稿,各种会上用得到,建议收藏
2019/08/13 职场文书
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android