用php代码检测友链是否存在

前言

随着友链的增多,有些网站可能会不经意间就把你网站的友链去除掉了,所以就写了个php代码来检测友链是否存在

教程

1.首先在网站目录中新建一个urls.txt的文本。

2.根据友链网站的友链地址,比如有些网站首页并没有友链模块而是在某个页面中。我们就需要把完整的页面地址比如:https://xxxx.com/links.html填写到urls.txt文本中。

3.新建一个php文件,把如下代码放到里面。

<?php

// 定义要搜索的关键词
$keyword = "新锐博客";

// 读取包含 URL 地址的文本文件
$urls = file("urls.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

// 初始化结果数组
$result = array();

// 初始化 cURL 处理器
$ch = curl_init();

// 设置 cURL 选项
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回获取的输出而不是直接输出到页面
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // 允许 cURL 追踪重定向
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); // 设置超时时间为 10 秒

// 循环处理每个 URL
foreach ($urls as $url) {
    // 设置要访问的 URL
    curl_setopt($ch, CURLOPT_URL, $url);

    // 执行 cURL 请求并获取页面内容
    $sourceCode = curl_exec($ch);

    // 检查是否有错误发生
    if (curl_errno($ch)) {
        continue; // 如果发生错误,跳过当前 URL
    }

    // 检查页面内容中是否包含关键词
    if ($sourceCode !== false && strpos($sourceCode, $keyword) === false) {
        // 如果页面中不包含关键词,将 URL 添加到结果数组
        $result['data'][] = $url;
    }
}

// 关闭 cURL 处理器
curl_close($ch);

// 设置返回的 JSON 数据
if (empty($result['data'])) {
    $result['code'] = 404;
    $result['msg'] = 'No URLs found containing the keyword.';
    $result['data'] = []; // 确保即使没有数据,也能输出空数组
} else {
    $result['code'] = 200;
    $result['msg'] = 'Success';
}

// 调整顺序,先输出code和msg,再输出data
$output = array(
    'code' => $result['code'],
    'msg' => $result['msg'],
    'data' => $result['data']
);

// 将结果数组转换为 JSON 格式
$jsonResult = json_encode($output, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

// 设置 HTTP 头部
header('Content-Type: application/json');

// 输出 JSON 数据
echo $jsonResult;

?>
THE END