こんにちは私は自分のウェブサイトのサイトマップを作成しようとしています(そして私はアプリケーションを使用したくない、またはすぐに使用できるコードを使用したくない)
これが私のコードの仕組みです。まず、ルートディレクトリでファイルをスキャンし、それらを配列に配置します。次に、配列をループしてそのファイルのコンテンツを取得し、リンク(タグ)のコンテンツを解析します。
ディレクトリをスキャンする
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');
}
}
}
}
ここで問題となるのは、コードの2番目の部分でファイルの内容を取得すると、そのファイルのphpコードが実行されないことです。だから私は次のようなものを得るかもしれません:
www.site.com/<?php echo $a; ?>.html
or
www.site.com/news.php?id=<?php echo $a; ?>
どうすればこれを解決できますか?私はカールに行くべきですか?しかし、それはファイルでは機能せず、URLアドレスでのみ機能します