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 相关文章推荐
基于mysql的论坛(2)
Oct 09 PHP
模仿OSO的论坛(三)
Oct 09 PHP
完美解决dedecms中的[html][/html]和[code][/code]问题
Mar 20 PHP
基于Windows下Apache PHP5.3.1安装教程
Jan 08 PHP
php更改目录及子目录下所有的文件后缀扩展名的代码
Oct 12 PHP
php 传值赋值与引用赋值的区别
Dec 29 PHP
CodeIgniter框架过滤HTML危险代码
Jun 12 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
Jun 29 PHP
form自动提交实例讲解
Jul 10 PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 PHP
基于PHP实现发微博动态代码实例
Dec 11 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
咖啡的种类和口感
2021/03/03 新手入门
PHP脚本的10个技巧(5)
2006/10/09 PHP
php实现把url转换迅雷thunder资源下载地址的方法
2014/11/07 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
PHP 图片处理
2020/09/16 PHP
javascript CSS画图之基础篇
2009/07/29 Javascript
javascript self对象使用详解
2016/10/18 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
JSON 数据详解及实例代码分析
2017/01/20 Javascript
Bootstrap进度条学习使用
2017/02/09 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
2017/08/17 jQuery
vue 文件目录结构详解
2017/11/24 Javascript
vue移动UI框架滑动加载数据的方法
2018/03/12 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
基于vue-draggable 实现三级拖动排序效果
2020/01/10 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
Python 创建子进程模块subprocess详解
2015/04/08 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
提升python处理速度原理及方法实例
2019/12/25 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
Omio荷兰:预订火车、巴士和机票
2018/11/04 全球购物
党校自我鉴定范文
2013/10/02 职场文书
模特职业生涯规划范文
2014/02/26 职场文书
2014年政工师工作总结
2014/12/18 职场文书
管理人员岗位职责
2015/02/14 职场文书
农民工工资支付承诺书
2015/05/04 职场文书
肖申克的救赎观后感
2015/06/02 职场文书
学雷锋活动简报
2015/07/20 职场文书
党员学习型组织心得体会
2019/06/21 职场文书
JavaScript选择器函数querySelector和querySelectorAll
2021/11/27 Javascript
Django基础CBV装饰器和中间件
2022/03/22 Python