猿问

如何包含像 ™ 这样的东西 在站点地图中

我正在尝试使用 php 生成站点地图,但由于我的某些产品名称包含“&trade”,因此出现错误。


我知道 & 需要转义到 &,但我不确定如何处理 &trade。这是一个很难搜索的问题,我敢肯定它会为某人找到,但我找不到相关的东西。


// Remove Whitespace from Links

function url_safe ($data) {

    $data = preg_replace('/\s/', '-', htmlentities($data));

    return $data;       

}


//URLs for Products

$query = "SELECT product_id, product_name FROM product WHERE active = 'Y'";

$result = mysqli_query($dbc, $query) or die(mysqli_error($dbc) . '<br />Query: ' . $query);


while($row = mysqli_fetch_array($result)) {

    $data .= "\t<url>\n";

    $data .= "\t\t<loc>https://www.example.com/product.php?pid=$row[0]&amp;name=" . url_safe($row[1]) . "</loc>\n";

    $data .= "\t\t<changefreq>monthly</changefreq>\n";

    $data .= "\t\t<priority>1.0</priority>\n";

    $data .= "\t</url>\n";

    $i++;

}

这是我对标题中带有 &trade 的任何产品的错误。


XML 解析错误:未定义的实体


以下是生成的输出中导致错误的示例。


    <url>

    <loc>https://www.example.com/product.php?pid=2738&amp;name=My-Product&trade;-Has-A-Trademark</loc>

    <changefreq>monthly</changefreq>

    <priority>1.0</priority>

    </url>


至尊宝的传说
浏览 129回答 2
2回答
随时随地看视频慕课网APP
我要回答