gpt4 book ai didi

php - 如何修复 PHP XML 站点地图编码错误

转载 作者:行者123 更新时间:2023-11-29 07:25:14 24 4
gpt4 key购买 nike

我正在使用 PHP 创建 XML 站点地图。 XML 值来自数据库并使用以下代码生成 XML 站点地图。

header("Content-Type: application/xml; charset=utf-8");
echo '<?xml version="1.0" encoding="UTF-8"?>'.PHP_EOL;

$query = mysqli_query($connect, "SELECT * FROM `tbl_city_landing_pages` WHERE `city_landing_pages_status` = 1 ORDER BY `city_landing_pages_keyword` ASC");
$total = mysqli_num_rows($query);

echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'.PHP_EOL;

while ($city_rows = mysqli_fetch_array($query)) {
echo '<url>'.PHP_EOL;
echo '<loc>'.BX_DOL_URL_ROOT.strtolower(str_replace(array(" ", "/"), array("-", "_"), $city_rows["city_landing_pages_keyword"])).'</loc>'.PHP_EOL;
echo '<lastmod>'.date('Y-m-d').'</lastmod>'.PHP_EOL;
echo '<changefreq>daily</changefreq>'.PHP_EOL;
echo '</url>'.PHP_EOL;
}

echo '</urlset>'.PHP_EOL;

上面的代码对某些字符工作正常。

在我的数据库中,某行包含 Bogotá, D.C.。而且这个字符没有编码,即使字符集是 utf-8。显示的错误是,

此页面包含以下错误:

第 19 行第 6 列错误:编码错误

下面是第一个错误之前的页面呈现。

如何显示数据库中的所有文本。

有什么解决办法吗?我需要显示来自 mysql 数据库的所有值。

最佳答案

看起来您有字符编码问题。

试试这个方法,

  • 首先,确定可以产生不同结果的列字符集。
  • utf8_encode 包裹它们在添加到 XML 之前节点。
  • 在上面的示例中,假设这是带来不同字符集的列 ( $city_rows["city_landing_pages_keyword"])。用 utf8_encode 包裹它们在放入 XML 之前.见下文,

echo '<loc>'.BX_DOL_URL_ROOT.strtolower(str_replace(array(" ", "/"), array("-", "_"), utf8_encode($city_rows["city_landing_pages_keyword"]))).'</loc>'.PHP_EOL;

同样地,对可以带来不同字符集结果的其余列执行此操作。

希望这对您有所帮助。干杯。

关于php - 如何修复 PHP XML 站点地图编码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54210110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com