You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP解析HTML获取标题并保存至MySQL?(修复Ganon报错500)

解决Ganon解析HTML标题并存储到MySQL的500错误问题

我来帮你排查下问题,顺便把完整的可运行方案整理出来~

首先,你遇到500错误的核心原因是用错了Ganon的函数:file_get_dom()是用来加载本地文件或远程URL的,直接传HTML字符串会导致它尝试把字符串当作文件路径去读取,自然会触发致命错误。处理字符串应该用str_get_dom()。

接下来是修正后的完整代码,包含Ganon解析标题和MySQL存储的逻辑,还加了错误处理避免500错误:

function store($raw) {
    // 开发环境开启错误显示,方便排查问题
    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    // 确保ganon.php路径正确,路径错误也会导致500
    include_once('ganon.php');
    
    // 用str_get_dom处理HTML字符串,而非file_get_dom
    $html = str_get_dom($raw);
    if (!$html) {
        die('HTML解析失败');
    }

    // 获取title节点,检查节点是否存在
    $titleNode = $html('title', 0);
    if (!$titleNode) {
        die('未找到title标签');
    }

    // 直接获取title的纯文本内容
    $pageTitle = $titleNode->getPlainText();
    echo "解析到的标题:{$pageTitle}";

    // ------------------- MySQL存储部分 -------------------
    // 替换为你的数据库信息
    $dbHost = 'localhost';
    $dbUser = 'your_username';
    $dbPass = 'your_password';
    $dbName = 'your_database';

    // 建立数据库连接
    $conn = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName);
    if (!$conn) {
        die('数据库连接失败:' . mysqli_connect_error());
    }

    // 使用预处理语句防止SQL注入
    $stmt = mysqli_prepare($conn, "INSERT INTO your_table (page_title) VALUES (?)");
    mysqli_stmt_bind_param($stmt, "s", $pageTitle);
    
    // 执行插入
    if (mysqli_stmt_execute($stmt)) {
        echo "<br>标题已成功存储到数据库";
    } else {
        echo "<br>存储失败:" . mysqli_error($conn);
    }

    // 关闭连接和语句
    mysqli_stmt_close($stmt);
    mysqli_close($conn);
}

// 测试调用
store('<html><head><title>测试页面标题</title></head><body>内容</body></html>');

关键注意事项

  • 确认ganon.php路径正确:如果它在子目录里,要写成include_once('path/to/ganon.php'),路径错误会直接触发500错误
  • 开发环境开启错误显示:上面代码里的error_reporting和ini_set能帮你看到具体的错误信息,比如找不到文件、数据库连接失败等,避免盲目排查
  • 替换MySQL配置:把代码里的数据库地址、账号、密码、库名和表名换成你自己的,确保表结构里有对应存储标题的字段
  • 使用预处理语句:避免SQL注入风险,同时能正确处理标题里的特殊字符(比如引号、尖括号)

内容的提问来源于stack exchange,提问作者user9614153

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:54:54