php怎么判断404状态码

不及物动词 其他 268

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    在PHP中,我们可以使用以下几种方法判断页面的状态码是否为404。

    方法一:使用PHP中的curl库发送请求
    “`php
    $url = ‘http://example.com’; // 替换为实际的URL地址

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_exec($ch);
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);

    if ($status_code == 404) {
    echo “404 Not Found”;
    } else {
    echo “Page exists”;
    }
    “`

    方法二:使用PHP的file_get_contents函数
    “`php
    $url = ‘http://example.com’; // 替换为实际的URL地址

    $page_content = file_get_contents($url);

    if (!$page_content) {
    echo “404 Not Found”;
    } else {
    echo “Page exists”;
    }
    “`
    其中,file_get_contents函数在无法访问页面时会返回false。

    方法三:使用PHP的get_headers函数
    “`php
    $url = ‘http://example.com’; // 替换为实际的URL地址

    $headers = get_headers($url);
    $status_code = substr($headers[0], 9, 3);

    if ($status_code == 404) {
    echo “404 Not Found”;
    } else {
    echo “Page exists”;
    }
    “`
    其中,get_headers函数会返回URL地址的响应头信息,我们可以从中获取状态码并进行判断。

    以上是三种常用的判断404状态码的方法,你可以根据自己的需求选择其中一种来使用。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在PHP中判断一个请求返回的状态码是否为404需要通过服务器响应的头部信息来进行判断。以下是几种常见的判断404状态码的方法:

    1. 使用file_get_contents函数获取请求的内容,并通过get_headers函数获取服务器的响应头部信息。判断响应头部中的状态码是否为”HTTP/1.1 404 Not Found”,如果是则表示请求的资源不存在。

    “`php
    $url = ‘https://www.example.com’;
    $response = file_get_contents($url);
    $headers = get_headers($url);

    $status_code = $headers[0];
    if (strpos($status_code, ‘404’) !== false) {
    echo “资源不存在”;
    }
    “`

    2. 使用curl函数库进行请求,并通过curl_getinfo函数获取服务器的响应状态码。判断状态码是否为404,如果是则表示请求的资源不存在。

    “`php
    $url = ‘https://www.example.com’;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $response = curl_exec($ch);
    $status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if ($status_code == 404) {
    echo “资源不存在”;
    }

    curl_close($ch);
    “`

    3. 使用HTTP库,例如Guzzle库,可以更方便地发送HTTP请求,并获取服务器的响应状态码。判断状态码是否为404,如果是则表示请求的资源不存在。

    “`php
    use GuzzleHttp\Client;

    $client = new Client();
    $response = $client->get(‘https://www.example.com’);
    $status_code = $response->getStatusCode();

    if ($status_code == 404) {
    echo “资源不存在”;
    }
    “`

    4. 使用头部信息直接判断状态码。在服务器响应头部信息中,状态码一般位于第一行的开头部分。判断请求的第一行是否以”HTTP/1.1 404″开头,如果是则表示请求的资源不存在。

    “`php
    $url = ‘https://www.example.com’;

    $fp = fopen($url, ‘r’);
    $status_code = fgets($fp);
    fclose($fp);

    if (strpos($status_code, ‘HTTP/1.1 404’) !== false) {
    echo “资源不存在”;
    }
    “`

    5. 使用PHP的curl函数库进行请求,并设置CURLOPT_FAILONERROR选项为true,这样在请求出错时会返回false。判断请求的结果是否为false,如果是则表示请求的资源不存在。

    “`php
    $url = ‘https://www.example.com’;
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    $response = curl_exec($ch);

    if ($response === false) {
    echo “资源不存在”;
    }

    curl_close($ch);
    “`

    以上是几种常见的判断404状态码的方法,可以根据实际需求选择最适合的方法进行判断。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    如何判断404状态码

    在Web开发中,404状态码是指当用户请求一个不存在的页面或资源时,服务器返回的错误状态码。判断404状态码可以通过多种方式来实现。本文将从方法和操作流程的角度,详细讲解如何判断404状态码。

    一、通过HTTP请求方法判断404状态码

    1. 使用HTTP库发起请求

    在PHP中,可以使用curl库、file_get_contents函数或者Guzzle等HTTP库来发起请求。首先需要确定请求的URL地址,然后使用相应的方法发起HTTP请求并获取响应。

    2. 判断响应状态码

    在获取到响应后,可以通过获取HTTP响应头中的状态码来判断请求的结果。HTTP协议中,状态码以3位数字表示,其中404表示请求的页面或资源不存在。可以使用以下代码来获取响应状态码:

    “`php
    $httpStatusCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    “`

    通过上述代码,可以获得请求的HTTP状态码。如果获取到的状态码为404则说明页面不存在,否则说明页面存在。

    二、通过异常捕获判断404状态码

    1. 使用try-catch语句

    在PHP中,可以使用try-catch语句来捕获异常。当请求的页面或资源不存在时,可以捕获到相应的异常,进而判断是否为404状态码。

    2. 根据捕获的异常判断状态码

    当捕获到异常时,可以通过判断异常的类型来判断所请求的页面是否存在。以下是通过捕获异常判断404状态码的示例代码:

    “`php
    try {
    // 请求页面代码
    } catch(\Exception $e) {
    $statusCode = $e->getCode();
    if ($statusCode == 404) {
    // 页面不存在的处理逻辑
    }
    }
    “`

    在上述代码中,通过捕获Exception类的异常,在异常对象中获取状态码,如果状态码为404,则说明请求的页面不存在。

    三、通过HTTP响应内容判断404状态码

    1. 获取HTTP响应内容

    在发起请求后,可以通过获取HTTP响应内容来判断请求的结果。可以使用curl库或者file_get_contents函数来获取到响应的内容。

    2. 判断响应内容中是否存在特定内容

    在获取到响应内容后,可以通过判断响应内容中是否存在特定的内容来判断请求的结果。例如,可以判断响应内容中是否包含”404″这个字符串,如果存在则说明页面不存在。

    以下是通过判断响应内容判断404状态码的示例代码:

    “`php
    $content = file_get_contents($url);
    if (strpos($content, ‘404’) !== false) {
    // 页面不存在的处理逻辑
    }
    “`

    在上述代码中,通过strpos函数判断页面内容中是否包含了”404″这个字符串,如果存在则说明页面不存在。

    总结:

    通过HTTP请求方法、异常捕获和HTTP响应内容等方式,可以判断404状态码。根据实际需求和场景选择适合的判断方式,并根据判断结果采取相应的逻辑处理。如果页面或资源不存在,可以返回相应的错误提示给用户,或者进行其他业务逻辑的处理。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部