php使用curl判断网页404(不存在)的方法 原创

下面是关于“php使用curl判断网页404(不存在)的方法”的完整攻略。

使用curl判断网页是否存在

我们可以使用curl来访问网页,并判断网页是否存在。如果网页存在,我们会得到一个HTTP状态码200;如果网页不存在,则会得到HTTP状态码404。

以下是使用curl的方法的示例:

function checkPageExist($url){
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_NOBODY, true); // 不下载页面内容

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
    curl_close($ch);

    return $httpCode === 200;
}

我们通过创建一个curl resource,设置一些参数并执行curl_exec(),获取HTTP状态码,然后关闭curl resource并返回判断结果。在函数中,我们不在意下载的具体内容,用CURLOPT_HEADER和CURLOPT_NOBODY移除了响应头和响应体。

例如,我们检查https://www.google.com这个网页是否存在,调用上述函数,并输出结果:

$url = "https://www.google.com";
if (checkPageExist($url)) {
    echo "$url 存在" . PHP_EOL;
} else {
    echo "$url 不存在" . PHP_EOL;
}

输出结果:

https://www.google.com 存在

如果网页不存在,输出结果:

https://www.google.com/404 不存在

处理跳转情况

有时候,我们检查的网页会发生重定向,这时候我们需要跟随重定向来检查重定向后的网页是否存在。我们可以通过CURLOPT_FOLLOWLOCATION选项来实现自动跟随重定向:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

这段代码可以让curl跟随任何重定向,从而最终获取到重定向后的网页的状态码。

以下是带处理重定向的示例:

function checkPageExist($url){
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_NOBODY, true); // 不下载网页内容

    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
    curl_close($ch);

    if ($httpCode === 301 || $httpCode === 302) {
        // 如果页面发生重定向,则继续访问重定向后的页面
        $location = curl_getinfo($ch, CURLINFO_REDIRECT_URL);
        return checkPageExist($location);
    }

    return $httpCode === 200;
}

我们使用固定的网址http://www.google.com/404作为检查网页的示例,调用checkPageExist()函数,输出结果:

$url = "http://www.google.com/404";
if (checkPageExist($url)) {
    echo "$url 存在" . PHP_EOL;
} else {
    echo "$url 不存在" . PHP_EOL;
}

输出结果:

http://www.google.com/404 不存在

这样,我们就可以使用curl来判断网页是否存在了。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php使用curl判断网页404(不存在)的方法 原创 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C++实现旅馆住宿管理系统

    C++实现旅馆住宿管理系统 简介 本文介绍如何使用C++编程语言实现旅馆住宿管理系统。这个管理系统旨在管理旅馆的客房信息,包括客户登记、退房、查房等功能。 步骤 1. 定义数据结构 首先需要定义数据结构,用于存储旅馆客房的信息。一个客房可以包含以下信息: 房间号 房间类型(单人房、双人房、三人房等) 房间状态(空闲、已预订、已入住) 房间价格 以下是定义客房…

    C 2023年5月23日
    00
  • Linux下的软件开发

    Linux下的软件开发攻略 1. 安装必要的工具 在Linux系统中进行软件开发需要安装一些必要的工具,例如编译器、版本控制工具、调试器等。下面是一些常用的工具及其安装命令: C/C++ 编译器 sudo apt-get install build-essential 版本控制工具Git sudo apt-get install git 调试器GDB sud…

    C 2023年5月30日
    00
  • C语言超详细讲解函数栈帧的创建和销毁

    C语言超详细讲解函数栈帧的创建和销毁 什么是函数栈帧? 函数栈帧也叫做栈帧,是存放函数局部变量、参数、函数返回地址等信息的一段内存空间。在函数被调用时,会动态地在栈上分配一段空间来存放函数栈帧,当函数执行完毕后释放这段空间。 函数栈帧的创建过程 当函数被调用时,会通过以下步骤创建函数栈帧: 将函数调用后下一条指令(即函数体里的第一条语句)的地址压入栈中,这里…

    C 2023年5月23日
    00
  • JSON.parse()和JSON.stringify()使用介绍

    让我来详细讲解一下 JSON.parse() 和 JSON.stringify() 的使用介绍。 JSON.parse() JSON.parse() 方法用于将一个 JSON 字符串转换成一个 JavaScript 对象。 语法如下: JSON.parse(text[, reviver]) 其中,text 表示待转换的 JSON 字符串,reviver 是可…

    C 2023年5月23日
    00
  • 解析Node.js异常处理中domain模块的使用方法

    解析Node.js异常处理中domain模块的使用方法 在Node.js中,异常处理是一个非常重要的话题,因为错误的产生是运行环境的本质。Node.js提供了一系列的异常处理工具来帮助我们处理错误,其中就包括domain模块。 什么是domain模块 domain模块是Node.js用于处理异步代码中错误的模块。它允许我们将多个异步操作绑定到一个错误处理上下…

    C 2023年5月23日
    00
  • C语言实现贪吃蛇超详细教程

    C语言实现贪吃蛇超详细教程 1. 简介 贪吃蛇是一款非常经典的游戏,同时其也是初学者学习编程的一个很好的练习项目,本教程将带领大家使用C语言来实现贪吃蛇。 2. 实现步骤 2.1 初始化 首先,我们需要初始化游戏窗口、贪吃蛇的位置、食物的位置以及其他一些必要的变量。 以Windows窗口为例,我们可以使用WinAPI来创建一个窗口,并使用CreateWind…

    C 2023年5月22日
    00
  • C 程序 查找前 n 个自然数的和

    程序说明 本程序是用 C 语言编写的,功能是查找前 n 个自然数的和。 程序的主要思路是利用循环结构来实现,通过逐个累加自然数的值来获得和。 程序代码 具体的代码如下所示: #include <stdio.h> int main() { int n, sum=0, i; printf("请输入一个正整数n:"); scanf(…

    C 2023年5月9日
    00
  • 使用C++实现位图处理

    使用C++实现位图处理攻略 什么是位图 位图(Bitmap),又称为点阵图,是一种用二进制数来表示图像的存储方式。位图是由若干像素点组成的栅格图像,每个像素点有固定的颜色值,颜色值的位数决定了图片的颜色数。 C++实现位图处理 使用C++语言可以方便快速地对位图进行处理,本文将介绍如何使用C++对位图进行灰度化、二值化操作。 读取位图文件 要处理位图,首先需…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部