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中的日期处理方法集锦
Jan 02 PHP
用mysql内存表来代替php session的类
Feb 01 PHP
PHP 观察者模式的实现代码
May 10 PHP
php实现12306余票查询、价格查询示例
Apr 17 PHP
使用array_map简单搞定PHP删除文件、删除目录
Oct 29 PHP
php中session与cookie的比较
Jan 27 PHP
PHP中strpos、strstr和stripos、stristr函数分析
Jun 11 PHP
PHP中功能强大却很少使用的函数实例小结
Nov 10 PHP
php数据库的增删改查 php与javascript之间的交互
Aug 31 PHP
Laravel框架源码解析之反射的使用详解
May 14 PHP
关于PHP中interface的用处详解
Jul 26 PHP
php字符串倒叙
Apr 01 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类的静态(static)方法和静态(static)变量使用介绍
2012/02/19 PHP
PHP基础知识回顾
2012/08/16 PHP
一个严格的PHP Session会话超时时间设置方法
2014/06/10 PHP
php多个文件及图片上传实例详解
2014/11/10 PHP
PHP编程获取图片的主色调的方法【基于Imagick扩展】
2017/08/02 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
phpfpm的作用和用法
2019/10/10 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
2019/10/15 PHP
javascript中的undefined 与 null 的区别  补充篇
2010/03/17 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
2012/11/14 Javascript
form表单中去掉默认的enter键提交并绑定js方法实现代码
2013/04/01 Javascript
js实现精美的银灰色竖排折叠菜单
2015/05/16 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
Bootstrap 网格系统布局详解
2017/03/19 Javascript
分享Bootstrap简单表格、表单、登录页面
2017/08/04 Javascript
js+SVG实现动态时钟效果
2018/07/14 Javascript
在 Angular6 中使用 HTTP 请求服务端数据的步骤详解
2018/08/06 Javascript
Vue Cli3 创建项目的方法步骤
2018/10/15 Javascript
vue实现的树形结构加多选框示例
2019/02/02 Javascript
Python Sqlite3以字典形式返回查询结果的实现方法
2016/10/03 Python
wxpython实现图书管理系统
2018/03/12 Python
python 判断文件还是文件夹的简单实例
2019/06/10 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
Python利用全连接神经网络求解MNIST问题详解
2020/01/14 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
Python 远程开关机的方法
2020/11/18 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
CSS3 实现飘动的云朵动画
2020/12/01 HTML / CSS
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
H&M旗下高端女装品牌:& Other Stories
2018/05/07 全球购物
美国最大的存储市场:SpareFoot
2018/07/23 全球购物
J2EE中常用的名词进行解释
2015/11/09 面试题
期末考试动员演讲稿
2014/01/10 职场文书
房地产公司见习自我鉴定
2014/04/28 职场文书
淘宝客服工作职责
2014/07/11 职场文书
导游词之镜泊湖
2019/12/09 职场文书