您好我正在尝试为我的网站创建站点地图(我不想使用任何应用程序或准备使用代码)
这是我的代码的工作方式。首先它扫描根目录中的文件并将它们放入一个数组中。然后它循环遍历数组并获取该文件的内容,然后它将解析链接的内容(一个标签)
扫描目录
public function scan($directory)
{
$dir = dir($directory);
while (($file = $dir->read()) !== false) {
$type = ($this->is_directory($directory.$file)) ? 'dir' : 'link' ;
$this->files[] = array('address'=>$directory.DIRECTORY_SEPARATOR.$file , 'type'=>$type);
}
sort($this->files);
$dir->close();
}
循环槽文件并解析其内容
public function get_links(){
foreach($this->files as $f )
{
if($f['type'] == 'link' )
{
$contents = file_get_contents($f['address']);
$DOM = new DOMDocument();
$DOM->loadHTML($contents);
$a = $DOM->getElementsByTagName('a');
foreach($a as $link){
$this->links[] = $link->getAttribute('href');
}
}
}
}
现在的问题是,当我在第二段代码中获取文件的内容时,该文件中的 php 代码没有被执行。所以我可能会得到类似的东西:
www.site.com/<?php echo $a; ?>.html
or
www.site.com/news.php?id=<?php echo $a; ?>
我该如何解决这个问题?我应该去卷曲吗?但这不适用于文件,它只适用于 url 地址