前提
需要判断远程URL是否有效,远程url包括远程图片,网页,视频等等元素
解决办法:
使用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,运行使用远程打开
函数介绍:
arrayget_headers( string$url[, int$format] )
get_headers()返回一个数组,包含有服务器响应一个 HTTP 请求所发送的标头。如果失败则返回FALSE并发出一条E_WARNING级别的错误信息。
如果将可选的format参数设为 1,则get_headers()会解析相应的信息并设定数组的键名。 例如:

简单的例子:
<?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资源
测试结果:

可以看到正确返回 -----------------------测试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
分享到:
相关推荐
本文将对使用PHP判断远程URL是否有效的方法进行详细说明。 首先,可以使用PHP内置的file_get_contents函数来获取远程URL的内容。file_get_contents函数能够读取整个文件到一个字符串中,但当URL无效或不可访问时,...
以下详细介绍了几种在PHP中判断远程图片是否存在方法的知识点。 方法一使用cURL检查远程图片是否存在: ```php function file_exists($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_...
以下是六种常见的PHP调用远程URL的方法: 1. **file_get_contents()** `file_get_contents()` 是一个简单易用的函数,它能直接读取远程或本地文件的内容。在示例代码1中,通过设置$url变量为远程URL,然后调用`...
4. **错误检查**:检查返回值或类的错误属性,判断下载是否成功,并处理可能出现的错误。 在"php中文网免费下载站.txt"和"php中文网下载站.url"这两个文件中,可能包含了关于这个类库的更多介绍、使用示例或PHP中文...
这里,cURL初始化一个会话,设置选项以获取远程URL的内容,执行请求,然后将结果写入本地文件。 3. 使用`fopen`和`fread` `fopen`和`fread`组合使用,可以逐块读取远程文件并写入本地文件,适用于大文件的下载,...
本示例介绍了一种方法,通过PHP实现在线更新远程的ZIP文件,并将其解压到指定目录以替换或更新本地文件。这种方法有助于简化多站点的同步更新,以及在网站授权过程中实现远程文件下载的需求。 首先,我们需要一个...
首先,要实现PHP的远程数据采集,我们通常会用到`file_get_contents`函数,它可以直接读取并返回远程URL的内容。例如: ```php $data = file_get_contents('http://example.com'); ``` 这段代码会获取`...
- `__construct()`: 初始化类,可能接受远程文件URL、本地保存路径等参数。 - `checkLocalFile()`: 检查本地是否存在已下载的文件,获取其大小。 - `buildRequestHeader()`: 构建包含Range头的HTTP请求头。 - `...
在PHP中,下载远程图片并保存到本地是一个常见的任务,特别...同时,为了确保安全性,需要验证远程URL的有效性和合法性,避免下载恶意文件。在保存图片时,也可以考虑添加校验和检查,确保本地文件与远程文件的一致性。
因此,更准确的判断方法可以使用`file_exists`函数,但这个函数不适用于远程URL,只能用于本地文件系统。 对于远程文件的存在判断,可以考虑以下几种方法: 1. 使用`file_get_contents`结合`ini_set`改变`allow_...
LFI漏洞允许攻击者读取服务器上的任意文件,而RFI漏洞则更严重,因为它能让攻击者通过指定远程URL来包含并执行服务器上的文件,可能导致服务器完全被接管。 PHP Bug Scanner是一款用于检测PHP应用程序中包含漏洞的...
5. 接收服务器返回的数据,根据HTTP响应头判断请求是否成功,并处理重定向(HTTP状态码为3开头)。 6. 如果HTTP状态码以2开头,表示请求成功,然后根据Content-Length响应头获取图片内容的长度。 7. 最后,打开一个...
在PHP开发中,经常需要从网络上抓取网页数据,无论是为了获取动态内容、爬取数据还是制作RSS订阅器,都需要有效地从远程URL获取数据。以下是几种常见的PHP抓取页面的方法以及它们的工作原理和实际应用。 1. 使用...
在IT行业中,CKEditor是一款广泛使用的富文本编辑器,它为用户提供了一种便捷的方式来创建和编辑含有各种格式的文本,包括插入图片。CKEditor图片上传和远程图片下载功能是其核心特性之一,允许用户不仅能在本地上传...
如果你发现`file_get_contents`在获取远程URL时超时,需要通过创建自定义的上下文(context)来设置HTTP选项中的超时时间。 ```php $opts = array( 'http' => array( 'method' => "GET", 'timeout' => 60, // ...
PHPDOS的攻击原理可能包括但不限于以下几种情况: 1. **无限循环**:攻击者构造的数据可能导致服务器端的解析逻辑陷入无限循环,不断消耗CPU资源。 2. **内存泄漏**:提交的数据可能导致内存分配错误,造成内存不断...
5. **返回新URL**:当图片成功下载并保存后,编辑器需要更新原来的远程URL为本地服务器上的新URL,以便正确显示图片。 6. **错误处理**:在下载过程中可能出现各种问题,如网络错误、权限问题等,因此需要适当的...