如何检查 URL 是否存在 - 错误 404? (使用PHP)

发布于 2024-09-16 17:39:20 字数 115 浏览 6 评论 0原文

如何检查 URL 是否存在 - 错误 404? (使用PHP)

<?php
$url = "http://www.faressoft.org/";
?>

how to check if a URL exists or not - error 404 ? (using php)

<?php
$url = "http://www.faressoft.org/";
?>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

初与友歌 2024-09-23 17:39:20

如果您有 allow_url_fopen,您可以这样做:

$exists = ($fp = fopen("http://www.faressoft.org/", "r")) !== FALSE;
if ($fp) fclose($fp);

尽管严格来说,这不会仅针对 404 错误返回 false。可以使用流上下文来获取该信息,但更好的选择是使用curl扩展:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/notfound");
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
$is404 = curl_getinfo($ch, CURLINFO_HTTP_CODE) == 404;
curl_close($ch);

If you have allow_url_fopen, you can do:

$exists = ($fp = fopen("http://www.faressoft.org/", "r")) !== FALSE;
if ($fp) fclose($fp);

although strictly speaking, this won't return false only for 404 errors. It's possible to use stream contexts to get that information, but a better option is to use the curl extension:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/notfound");
curl_setopt($ch, CURLOPT_NOBODY, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_exec($ch);
$is404 = curl_getinfo($ch, CURLINFO_HTTP_CODE) == 404;
curl_close($ch);
信仰 2024-09-23 17:39:20

最简单的一种是检查 404/200 等。

<?php
$mylink="http://site.com";
$handler = curl_init($mylink);
curl_setopt($handler,  CURLOPT_RETURNTRANSFER, TRUE);
$re = curl_exec($handler);
$httpcdd = curl_getinfo($handler, CURLINFO_HTTP_CODE);


if ($httpcdd == '404')
     { echo 'it is 404';}
else {echo 'it is not 404';}

?>

The simplest one to check the 404/200 or etc..

<?php
$mylink="http://site.com";
$handler = curl_init($mylink);
curl_setopt($handler,  CURLOPT_RETURNTRANSFER, TRUE);
$re = curl_exec($handler);
$httpcdd = curl_getinfo($handler, CURLINFO_HTTP_CODE);


if ($httpcdd == '404')
     { echo 'it is 404';}
else {echo 'it is not 404';}

?>
痕至 2024-09-23 17:39:20

您可以使用 PHP 库curl。使用curl,您可以查询页面,然后检查名为的错误代码:

CURLE_HTTP_RETURNED_ERROR (22)

如果CURLOPT_FAILONERROR设置为TRUE并且HTTP服务器返回> = 400的错误代码,则返回此错误代码。

来自php.net的CURL文档:

<?php
// Create a curl handle to a non-existing location
$ch = curl_init('http://404.php.net/');

// Execute
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);

// Check if any error occured
if(curl_errno($ch))
{
    echo 'Curl error: ' . curl_error($ch);
}

// Close handle
curl_close($ch);
?>

< a href="http://www.php.net/manual/en/function.curl-errno.php" rel="nofollow noreferrer">http://www.php.net/manual/en/function.curl -errno.php

You could use curl which is a PHP library. With curl, you could query the page and then check for the error code called:

CURLE_HTTP_RETURNED_ERROR (22)

This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server returns an error code that is >= 400.

From the CURL documentation at php.net:

<?php
// Create a curl handle to a non-existing location
$ch = curl_init('http://404.php.net/');

// Execute
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);

// Check if any error occured
if(curl_errno($ch))
{
    echo 'Curl error: ' . curl_error($ch);
}

// Close handle
curl_close($ch);
?>

http://www.php.net/manual/en/function.curl-errno.php

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文