2013-08-15 3 views
0

먼저 디렉토리 트리를 스캔하고 simplexml_load_file()으로 XML 파일에서 데이터를 검색합니다. 이 기능은 제대로 작동하지만 경고가 나타납니다 변경 하위 폴더가있을 때,simplexml_load_file에 대한 경고 제거 PHP

Warning: simplexml_load_file(startfolder/cyrilic) [function.simplexml-load-file]: failed to open stream: Permission denied in C:\xampp\htdocs\begin\xxx.php on line 36 

Warning: simplexml_load_file() [function.simplexml-load-file]: I/O warning : failed to load external entity "startfolder/cyrilic" in C:\xampp\htdocs\begin\xxx.php on line 36 

이 경고가 나타납니다. 내가 php.ini 파일에 설정 :

allow_url_fopen = On 
allow_url_include = On 

이 코드는 다음과 같습니다 먼저 파일을 읽을 수 있는지

$dir = 'startfolder'; 
     $items = glob($dir . '/*'); 
     $table = 'book'; 
     for ($i = 0; $i < count($items); $i++) { 
      if (is_dir($items[$i])) { 
       $add = glob($items[$i] . '/*'); 
       $items = array_merge($items, $add); 
      } 
     } 
     echo "<ul id='booklist'>"."</n>"; 
     foreach ($items as $key=>$file){ 
      $url = $file; 
      $xml = simplexml_load_file($url); 
      $book_count = count($xml->book); 
+0

오류 메시지가 다시 읽기 -'실패 공개 스트림 : 허가가 거부되었습니다. 허가 문제입니다. –

+0

운영 체제가 Windows 7입니다.이 응용 프로그램은 다른 서버 WAMP에 있었고 문제가 없었습니다. 현재 서버는 XAMPP입니다. – vili

+0

좋아,'simplexml_load_file'을 호출하는 곳에 코드를 게시하십시오. –

답변

1

확인 :

foreach ($items as $key=>$file){ 
    if(is_readable($file) == false) { 
     echo "$file unreadable"; 
     continue; 
    } 
+0

파일을 읽을 수 있습니다. 나는 결과를 표시한다. 나는이 검사를했다. 괜찮아. – vili

+1

예,하지만 여러 파일을 읽는 중 하나를 열 수 없습니다. 따라서 한 파일이 성공하고 다른 파일이 실패하면 "a"결과가 표시되지만 경고도 표시됩니다. 해당 파일에 대한 사용 권한 문제를 해결하거나 필요없는 경우 제거하십시오. – Sven

+0

서브 디렉토리 만 열 때 문제가 있습니다. 내용과 파일이 정확합니다. – vili