如何修复PHP XML站点地图编码错误
我正在使用PHP创建XML站点地图。XML值来自数据库,并使用以下代码生成XML站点地图如何修复PHP XML站点地图编码错误,php,mysql,xml,Php,Mysql,Xml,我正在使用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_lan
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;
标题(“内容类型:application/xml;charset=utf-8”);
回音“.PHP_EOL;
$query=mysqli\u query($connect,“从`tbl\u城市登录页面`WHERE`city\u登录页面`status`=1个由`city\u登录页面`ASC`关键字排序的顺序中选择*);
$total=mysqli\u num\u行($query);
回音“.PHP_EOL;
while($city\u rows=mysqli\u fetch\u数组($query)){
回音“.PHP_EOL;
echo'.BX_DOL_URL_ROOT.strtolower(str_replace(数组(“,”/”,数组(“-”,“),$city_行[“city_landing_pages_关键字”))。'.PHP_EOL;
回显“”。日期('Y-m-d')。'PHP_EOL;
echo'daily'。PHP_EOL;
回音“.PHP_EOL;
}
回音“.PHP_EOL;
上面的代码在处理某些字符时运行良好
在我的数据库中,某一行包含哥伦比亚特区波哥大的。即使字符集是utf-8,这个字符也不编码。显示的错误是
此页面包含以下错误:
第6列第19行的错误:编码错误
下面是第一个错误之前的页面呈现。
如何显示数据库中的所有文本
有什么解决办法吗。我需要显示mysql数据库中的所有值。看起来您有字符编码问题 试试这个办法,
- 首先,确定可以产生不同结果的列 字符集
- 在添加到
节点之前,使用XML
将它们包装起来李>utf8\u encode
- 在上面的示例中,假设这是一列(
),它提供了不同的字符集。在放入$city\u rows[“city\u landing\u pages\u keyword”]
之前,先用XML
将它们包装起来。见下文utf8\u encode
echo'.BX_DOL_URL_ROOT.strtolower(str_replace(数组(“,”/”,数组(“-”,“,”),utf8_encode($city_rows[“city_landing_pages_keyword”))。'PHP_EOL代码>
同样,对于可以使用不同字符集生成结果的其余列,请执行以下操作
希望这有帮助。干杯。您的数据库连接是否设置为使用UTF-8?列/表呢?@Phil数据库设置为UTF-8,这是一个非常普遍的响应。我问过你三件非常不同的事情。如果可以,请显示您在哪里设置连接编码,即我说的关于数据库排序规则utf8\u general\u ciSo您是否通过mysqli\u set\u charset()
设置连接编码?你也应该去看看,我很高兴它起了作用,也很高兴能帮助你:)