Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何修复PHP XML站点地图编码错误_Php_Mysql_Xml - Fatal编程技术网

如何修复PHP 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

我正在使用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;
标题(“内容类型: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()
设置连接编码?你也应该去看看,我很高兴它起了作用,也很高兴能帮助你:)