Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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_Xml - Fatal编程技术网

如何在php中创建站点地图xml

如何在php中创建站点地图xml,php,xml,Php,Xml,您好,我想用php创建sitemap.xml表单数据库数据 我的当前代码在下面,我正在从数据库中获取数据 $show_data = "query to database"; $rows = mysqli_query($conn, $show_data); $row = mysqli_fetch_array($rows); while($row = mysqli_fetch_array($rows)){ echo "<url>\n"; echo "<loc>

您好,我想用php创建sitemap.xml表单数据库数据

我的当前代码在下面,我正在从数据库中获取数据

$show_data = "query to database";
$rows = mysqli_query($conn, $show_data);
$row = mysqli_fetch_array($rows);

while($row = mysqli_fetch_array($rows)){
    echo "<url>\n";
    echo "<loc>https://example.com/page/".$row['id']."</loc>\n";
    echo "<lastmod>".$date_show."</lastmod>\n";
    echo "<changefreq>weekly</changefreq>\n";
    echo "<priority>0.80</priority>\n";
    echo "</url>\n";
}
$show\u data=“查询到数据库”;
$rows=mysqli\u查询($conn,$show\u数据);
$row=mysqli\u fetch\u数组($rows);
while($row=mysqli\u fetch\u数组($rows)){
回音“\n”;
回声“https://example.com/page/“$row['id']。”\n”;
回显“$date\u show”。\n”;
回显“每周\n”;
回显“0.80\n”;
回音“\n”;
}

mysqli_result
实现了
可遍历的
(PHP>=5.4),因此您可以在
foreach
中直接使用它。将其与XMLWriter结合起来,就完成了

$targetFile = 'php://stdout';
$xmlns = 'http://www.sitemaps.org/schemas/sitemap/0.9';
$date = date('Y-m-d');

$writer = new XMLWriter();
$writer->openUri($targetFile);
$writer->setIndent(2);
$writer->startDocument();
$writer->startElementNS(NULL, 'urlset', $xmlns);

foreach ($queryResult as $row) {
  $writer->startElement('url');
  $writer->writeElement('loc', 'https://example.com/page/'.urlencode($row['id']));
  $writer->writeElement('lastmod', $date);
  $writer->writeElement('priority', '0.80');
  $writer->endElement();
}

$writer->endElement();
$writer->endDocument();