检查一个URI的存在?

我如何检查是否存在URI用PHP?

我想它会返回一个错误代码,我可以检查它之前,我使用file_get_contents因为如果我使用file_get_contents上不存在一个链接,它给了我一个错误。

--------------解决方案-------------

试试功能array get_headers($url, [, int $format = 0 ])它应该返回false失败-否则,您可以假设URI存在,因为网络服务器为您提供了头信息。

我希望函数使用,而不是一个GET,这将导致少了很多的流量比在一个HTTP HEAD请求fopen解决方案上面。

您可以发送卷曲请求的URI / URL。 根据该协议,你可以检查的结果。 对于HTTP,你应该检查HTTP状态代码404 检查php.net卷曲手册。 在某些情况下,你可以使用file_exists()函数。

<?php
$curl = curl_init('http://www.example.com/');
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_exec($curl);
$info = curl_getinfo($curl);
echo $info['http_code']; // gives 200
curl_close($curl);

$curl = curl_init('http://www.example.com/notfound');
curl_setopt($curl, CURLOPT_NOBODY, true);
curl_exec($curl);
$info = curl_getinfo($curl);
echo $info['http_code']; // gives 404
curl_close($curl);

试着这么做:

if ($_REQUEST[url] != "") {
$result = 1;
if (! ereg("^https?://",$_REQUEST[url])) {
$status = "This demo requires a fully qualified http:// URL";
} else {
if (@fopen($_REQUEST[url],"r")) {
$status = "This URL s readable";
} else {
$status = "This URL is not readable";
}
}
} else {
$result = 0;
$status = "no URL entered (yet)";
}

然后,事后你可以使用调用这个函数:

if ($result != 0) {
print "Checking URL <b>".htmlspecialchars($_REQUEST[url])."</b><br />";
}
print "$status";

try {
$fp = @fsockopen($url, 80);
if (false === $fp) throw new Exception('URI does not exist');
fclose($fp);
// do stuff you want to do it the URI exists
} catch (Exception $e) {
echo $e->getMessage();
}

checkdnsrr()做了DNS查找。 可能是使用。

分类:php 时间:2015-03-15 人气:0
本文关键词: PHP
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.536 (s). 9 q(s)