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

WordPress中通过页面标题匹配CSV内容并输出指定行HTML表格

实现代码

<?php
// 获取页面标题
$title = get_the_title( get_option('page_for_posts', true) );
// 初始化表头、匹配行存储变量
$header = [];
$matched_row = [];

$f = fopen("file.csv", "r");
if ($f) {
    // 读取第一行作为表头
    $header = fgetcsv($f, 0, ';');
    // 遍历剩余行匹配第一列内容
    while (($line = fgetcsv($f, 0, ';')) !== false) {
        // 匹配第一列和页面标题,前后去空格避免意外匹配失败
        if (trim($line[0]) === trim($title)) {
            $matched_row = $line;
            // 匹配到就提前退出循环,不用读完整个文件
            break;
        }
    }
    fclose($f);
}

// 只有表头和匹配行都存在时才输出表格
if (!empty($header) && !empty($matched_row)) {
    echo "<table>\n";
    // 输出表头,用th标签语义更合理
    echo "<tr>";
    foreach ($header as $head_cell) {
        echo "<th>" . htmlspecialchars($head_cell) . "</th>";
    }
    echo "</tr>\n";
    // 输出匹配到的内容行
    echo "<tr>";
    foreach ($matched_row as $cell) {
        echo "<td>" . htmlspecialchars($cell) . "</td>";
    }
    echo "</tr>\n";
    echo "</table>";
}
?>

关键调整说明

  • 移除了原有代码多余的<html>、<body>标签输出,避免WordPress页面嵌套重复的根标签
  • 直接用fgetcsv的第三个参数指定分隔符为分号,不需要额外调用explode拆分内容,兼容性更好
  • 增加了前后空格修剪的trim()逻辑,避免CSV内容或者页面标题前后有多余空格导致匹配失败
  • 匹配到目标行后直接终止遍历,大体积CSV文件场景下性能更好
  • 增加非空判断,只有表头和匹配行都存在的时候才渲染表格,避免空标签或者异常报错
  • 表头使用<th>标签替代<td>,语义更规范,也方便后续自定义表头样式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:54:09