我在教自己一些基本的刮削,我发现有时候我输入代码return 404的URL会把代码的其余部分都弄脏.

因此,我需要在代码顶部进行一个测试,以判断URL是否返回404.

这似乎是一项相当简单的任务,但谷歌没有给我任何答案.我担心我在找错误的东西.

一个博客建议我使用这个:

$valid = @fsockopen($url, 80, $errno, $errstr, 30);

然后测试$是否为空是否有效.

但是我认为给我带来问题的URL有一个重定向,所以$VALID对于所有值都是空的.或者也许我做错了什么.

我还研究了一个"head request",但还没有找到任何可以使用或try 的实际代码示例.

有什么建议吗?这是关于卷发的事吗?

推荐答案

如果您使用的是PHP的curl bindings,则可以使用curl_getinfo判断错误代码,如下所示:

$handle = curl_init($url);
curl_setopt($handle,  CURLOPT_RETURNTRANSFER, TRUE);

/* Get the HTML or whatever is linked in $url. */
$response = curl_exec($handle);

/* Check for 404 (file not found). */
$httpCode = curl_getinfo($handle, CURLINFO_HTTP_CODE);
if($httpCode == 404) {
    /* Handle 404 here. */
}

curl_close($handle);

/* Handle $response here. */

Php相关问答推荐

PHP php_mongodb.dll for 32bit

使用WooCommerce本机产品短码时不考虑价格筛选(_SHORT CODE)

如何优化-PHP 7.3.14+Laravel 6

在php中有没有办法比较两个包含相同枚举类型的枚举数组

Mysqli_stmt::Execute():结果字段元数据中存在过早的EOF

Nginx重写扩展名为.php的动态URL

如何在laravel中使用script type= text/html/script

首先在WooCommerce我的帐户订单页面中移动操作按钮

Laravel Carbon DiffForHumans选项(年,月,天)

文件::Files()响应返回空对象数组

如何在codeigniter中将order_by RAND与下面的代码一起使用

既然setSQLLogger()已被弃用,如何使用中间件在 Doctrine 3 中记录查询执行时间?

在 PHP 中将字符串分解为数组(字符串类似于 WP 短代码)

对产品/库存结果集进行分组和计数,形成多维分层数组

如何判断php中wordpress路径之外的文件夹是否存在?

Firefox 115 会话行为:为什么页面无法找到要加载的现有会话 ID?

无法读取某些 WordPress 主机上的 cookie

WooCommerce checkout 流程中基于所选选项添加自定义费用

Symfony 6 中的入口点 (public/index.php) - 它是如何工作的?

在 WooCommerce 结帐后更新用户元字段