내 웹 사이트 에 대한 사이트 맵을 만들려고 해요
안녕하세요 여기있는 file_get_contents에 unexcuted PHP 코드 내 코드가 어떻게 작동하는지. 먼저 루트 디렉토리에서 파일을 검색하여 배열에 저장합니다. 다음은 저점 배열을 반복하고 해당 파일의 내용을 얻을 후 그 내용
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();
}
디렉토리를 scaning 저점 파일을 루핑 및 구문 분석 링크에 대한 내용 (A 태그)
을 구문 분석 할 수 있습니다
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');
}
}
}
}
이제 문제는 코드의 두 번째 pice에서 파일의 내용을 가져올 때 해당 파일의 PHP 코드가 실행되지 않는다는 것입니다. 그래서 내가 좋아할만한 것을 얻을 수 있습니다 :
www.site.com/<?php echo $a; ?>.html
or
www.site.com/news.php?id=<?php echo $a; ?>
어떻게 해결할 수 있습니까? 나는 컬해야합니까? 하지만 파일과 함께 작동하지 않을 것이며 URL 주소로만 작동합니다.
이 실제로 사실이 아니다, 당신은 HTTP'와 같은 원격 콘텐츠를 얻을 file_get_contents()를 사용할 수 있습니다 : // localhost를/내 사이트/폴더/file.php', 그래서 이유에가 없습니다 콘텐츠가 로컬 인 경우 특히 cURL로 이동하십시오. –
예, ALLOW_URL_FOPEN이면 true입니다. 설정됩니다. 그러나 내 요점은 엄밀히 말하면 cURL이되어야한다는 것이 아니라 URL을 사용하고 그의 웹 서버에서 파일을 요청해야한다는 것입니다. – lawl0r
예, allow_url_fopen을 설정해야합니다. – Prisoner