我使用以下链接
中的一些参考代码为我的网站创建了站点地图Creating an XML sitemap with PHP
但我收到错误
XML解析错误:未定义的实体 位置:
我的内容如下
<< alt>>属性,它说像
< loc> http://www.example.com/700-& laquo; alt& RAQUO; -attributes合images.php< / loc>
任何人都可以告诉我如何摆脱这个错误。
答案 0 :(得分:2)
我认为您必须在链接值上使用urlencode()
函数,并在使用html_entity_decode()
之前重新转换实体:
echo '<loc>'.urlencode(html_entity_decode($link)).'<loc>';
或代码中的类似内容。
答案 1 :(得分:0)
最佳解决方案是访问您的根文件夹并将以下行添加到您的Apache .htaccess
文件
RewriteEngine On
RewriteRule sitemap\.xml sitemap.php [L]
然后在根文件夹中只有一个文件sitemap.php
,因此通常可以通过http://yoursite.com/sitemap.xml
访问,sitemap.php
是所有搜索引擎首先搜索的默认网址。
该文件<?php header('Content-type: application/xml; charset=utf-8') ?>
<?php echo '<?xml version="1.0" encoding="UTF-8"?>' ?>
应以
$query1="SELECT nickname FROM user$iduser" WHERE id=1;
$query2="SELECT items FROM user$iduser WHERE id=1";
$query3="SELECT data FROM user$iduser WHERE id=1";
$query4="SELECT time FROM user$iduser WHERE id=1";
$result=$conn->query($query);
$row = $result->fetch_array(MYSQL_BOTH);
$nickname = openssl_decrypt( base64_decode( $row['nickname'] ), $encrypt_method, $key2crypt, 0, $iv );
$result=$conn->query($query2);
$row = $result->fetch_array(MYSQL_BOTH);
$items = openssl_decrypt( base64_decode( $row['items'] ), $encrypt_method, $key2crypt, 0, $iv );
$result=$conn->query($query3);
$row = $result->fetch_array(MYSQL_BOTH);
$data = openssl_decrypt( base64_decode( $row['data'] ), $encrypt_method, $key2crypt, 0, $iv );
$result=$conn->query($query4);
$row = $result->fetch_array(MYSQL_BOTH);
$time = openssl_decrypt( base64_decode( $row['time'] ), $encrypt_method, $key2crypt, 0, $iv );
echo $nickname,",",$items,",",$data,",",$time;
我有这个解决方案,它就像一个魅力:)