`
datoplay
  • 浏览: 1673389 次
文章分类
社区版块
存档分类
最新评论

PHP判断远程url是否有效的几种方法

 
阅读更多

前提

需要判断远程URL是否有效,远程url包括远程图片,网页,视频等等元素

解决办法:

使用PHP解决

  1. 使用file_get_contents函数,不过优缺点如果url无法访问,会出现终止程序问题
  2. 使用curl返回,然后判断是否正确执行
  3. 使用get_headers函数,根据HTTP返回值查看是否有200

使用js解决:

  1. 使用原生的js函数ActiveXObject,仅支持ie内核的浏览器
  2. 使用jq扩展

本文主要介绍PHP解决办法中的第三种,这个方法很少用到,但是感觉又起来还不错,

get_headers需要支持

  1. php_openssl支持 查看phpinfo看看是否开启
  2. allow_url_fopen=on 修改php.ini,运行使用远程打开

函数介绍:

arrayget_headers( string$url[, int$format] )

get_headers()返回一个数组,包含有服务器响应一个 HTTP 请求所发送的标头。如果失败则返回FALSE并发出一条E_WARNING级别的错误信息。

如果将可选的format参数设为 1,则get_headers()会解析相应的信息并设定数组的键名。 例如:

wps_clip_image-4948

简单的例子:

<?php
$url = "http://cn.php.net/images/php.gif";
$array = get_headers($url,1);
if(preg_match('/200/',$array[0])){
echo "<pre/>";
print_r($array);
}else{
echo "无效url资源!";
}

解释:判断远程图片ur是否有效,根据返回值HTTP中是否有200信息,判断是否是有效url资源

测试结果:

wps_clip_image-5529

可以看到正确返回 -----------------------测试ok

优点缺点:

需要allow_url_fopen=on 开启,有点和file_get_contents函数使用条件类似,但是返回值比较少,可以使用

function_exists判断该方法是否可以使用

其他实现远程判断url是否有效的方法:

使用curl方法:http://www.windsfly.cn/blog/article.asp?id=1647http://blog.pcsql.com/archives/87.html

使用js实现的:http://www.cnblogs.com/GuominQiu/archive/2011/04/07/2007600.html

知识共享许可协议本文基于署名-非商业性使用 3.0许可协议发布,欢迎转载,演绎,但是必须保留本文的署名PHP淮北(包含链接),且不得用于商业目的。如您有任何疑问或者授权方面的协商,请与我联系

分享到:
评论

相关推荐

    PHP判断远程url是否有效的几种方法小结

    本文将对使用PHP判断远程URL是否有效的方法进行详细说明。 首先,可以使用PHP内置的file_get_contents函数来获取远程URL的内容。file_get_contents函数能够读取整个文件到一个字符串中,但当URL无效或不可访问时,...

    PHP判断远程图片是否存在的几种方法

    以下详细介绍了几种在PHP中判断远程图片是否存在方法的知识点。 方法一使用cURL检查远程图片是否存在: ```php function file_exists($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_...

    php 调用远程url的六种方法小结

    以下是六种常见的PHP调用远程URL的方法: 1. **file_get_contents()** `file_get_contents()` 是一个简单易用的函数,它能直接读取远程或本地文件的内容。在示例代码1中,通过设置$url变量为远程URL,然后调用`...

    PHP下载远程图片到本地类.zip

    4. **错误检查**:检查返回值或类的错误属性,判断下载是否成功,并处理可能出现的错误。 在"php中文网免费下载站.txt"和"php中文网下载站.url"这两个文件中,可能包含了关于这个类库的更多介绍、使用示例或PHP中文...

    PHP下载远程图片的几种方法总结

    这里,cURL初始化一个会话,设置选项以获取远程URL的内容,执行请求,然后将结果写入本地文件。 3. 使用`fopen`和`fread` `fopen`和`fread`组合使用,可以逐块读取远程文件并写入本地文件,适用于大文件的下载,...

    PHP远程文件下载解压压缩包.zip文件file文件操作类

    本示例介绍了一种方法,通过PHP实现在线更新远程的ZIP文件,并将其解压到指定目录以替换或更新本地文件。这种方法有助于简化多站点的同步更新,以及在网站授权过程中实现远程文件下载的需求。 首先,我们需要一个...

    PHP采集远程网址数据

    首先,要实现PHP的远程数据采集,我们通常会用到`file_get_contents`函数,它可以直接读取并返回远程URL的内容。例如: ```php $data = file_get_contents('http://example.com'); ``` 这段代码会获取`...

    php支持断点续传的下载远程文件的类.zip

    - `__construct()`: 初始化类,可能接受远程文件URL、本地保存路径等参数。 - `checkLocalFile()`: 检查本地是否存在已下载的文件,获取其大小。 - `buildRequestHeader()`: 构建包含Range头的HTTP请求头。 - `...

    PHP下载远程图片并保存到本地方法总结

    在PHP中,下载远程图片并保存到本地是一个常见的任务,特别...同时,为了确保安全性,需要验证远程URL的有效性和合法性,避免下载恶意文件。在保存图片时,也可以考虑添加校验和检查,确保本地文件与远程文件的一致性。

    PHP判断网络文件是否存在的方法

    因此,更准确的判断方法可以使用`file_exists`函数,但这个函数不适用于远程URL,只能用于本地文件系统。 对于远程文件的存在判断,可以考虑以下几种方法: 1. 使用`file_get_contents`结合`ini_set`改变`allow_...

    php包含漏洞自动挖掘分析工具下载 php远程包含漏洞

    LFI漏洞允许攻击者读取服务器上的任意文件,而RFI漏洞则更严重,因为它能让攻击者通过指定远程URL来包含并执行服务器上的文件,可能导致服务器完全被接管。 PHP Bug Scanner是一款用于检测PHP应用程序中包含漏洞的...

    解析php下载远程图片函数 可伪造来路

    5. 接收服务器返回的数据,根据HTTP响应头判断请求是否成功,并处理重定向(HTTP状态码为3开头)。 6. 如果HTTP状态码以2开头,表示请求成功,然后根据Content-Length响应头获取图片内容的长度。 7. 最后,打开一个...

    php抓取页面的几种方法详解

    在PHP开发中,经常需要从网络上抓取网页数据,无论是为了获取动态内容、爬取数据还是制作RSS订阅器,都需要有效地从远程URL获取数据。以下是几种常见的PHP抓取页面的方法以及它们的工作原理和实际应用。 1. 使用...

    ckeditor图片上传 远程图片下载

    在IT行业中,CKEditor是一款广泛使用的富文本编辑器,它为用户提供了一种便捷的方式来创建和编辑含有各种格式的文本,包括插入图片。CKEditor图片上传和远程图片下载功能是其核心特性之一,允许用户不仅能在本地上传...

    PHP file_get_contents 函数超时的几种解决方法

    如果你发现`file_get_contents`在获取远程URL时超时,需要通过创建自定义的上下文(context)来设置HTTP选项中的超时时间。 ```php $opts = array( 'http' =&gt; array( 'method' =&gt; "GET", 'timeout' =&gt; 60, // ...

    PHPDOS, multipart/form-data 远程dos漏洞利用程序

    PHPDOS的攻击原理可能包括但不限于以下几种情况: 1. **无限循环**:攻击者构造的数据可能导致服务器端的解析逻辑陷入无限循环,不断消耗CPU资源。 2. **内存泄漏**:提交的数据可能导致内存分配错误,造成内存不断...

    Fckeditor下载远程图片

    5. **返回新URL**:当图片成功下载并保存后,编辑器需要更新原来的远程URL为本地服务器上的新URL,以便正确显示图片。 6. **错误处理**:在下载过程中可能出现各种问题,如网络错误、权限问题等,因此需要适当的...

Global site tag (gtag.js) - Google Analytics