我一直在尝试使用PHP生成动态站点地图,这是我已经拥有的:
<?php
header ("Content-Type:text/xml");echo '<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
//$url needs to link to the location of menu.inc on the server
$url = $_SERVER['DOCUMENT_ROOT'] . "/assets/includes/menu.inc";
$input = @file_get_contents($url) or die("Could not access file: $url");
$regexp = "!\('[/a-zA-z0-9].+'\);!";
if(preg_match_all($regexp, $input, $matches, PREG_SET_ORDER)) {
foreach($matches as $match) {
$match[0] = preg_replace("!\('/*!", "", $match[0]);
$match[0] = preg_replace("!'\);!", "", $match[0]);
echo '<url><loc>http://' . $_SERVER['SERVER_NAME'] . '/' . $match[0] . '</loc></url>';
}
}
echo '</urlset>';
?>
它正在从menu.inc
<li><a <?php href('index.php');?>>Home</a></li>
<li><a <?php href('about.php');?>>About</a></li>
<li class="subMenu"><a <?php href('gallery.php');?>>Gallery</a>
<ul>
<li><a <?php href('services.php');?>>Services</a></li>
</ul>
</li>
<li class="subMenu"><a class="noLink">Extras</a>
<ul>
<li><a <?php href('404.php');?>>404 Page</a></li>
<li><a <?php href('blank.php');?>>Blank Page</a></li>
</ul>
</li>
<li><a <?php href('contact.php');?>>Contact</a></li>
但是,我不希望它只列出菜单中的链接,因为某些链接可能位于页脚或网站页面中......所以我想改变概念在目录中将所有列出的文件拉为.php。
我发现了这个:PHP: Get list of all filenames contained within my images directory并且这个:PHP list of specific files in a directory很有帮助,并试图将这个想法融入我现在的想法中,但是失败了,请有人建议吗?
以下是我尝试过的内容:我试图使用它:
<?php
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle)))
{
if ($file != "." && $file != "..")
{
$thelist .= '<a href="'.$file.'">'.$file.'</a>';
}
}
closedir($handle);
}
?>
然后基本上将$url = $_SERVER['DOCUMENT_ROOT'] . "/assets/includes/menu.inc";
更改为$url = $thelist;