2013-08-06 4 views
0

현재 전환 과정에 있으며 기존 웹 사이트의 CMS를 만들고 싶습니다. 지금까지 (몇 년 동안) 완전한 html 파일을 생성하고 저장하고 있었고 데이터베이스의 해당 페이지 내용을 저장하려고합니다. 나의 행운은, 내가 생각하기에, 각 html에서 가져 가고 싶은 두 가지 요소는 하나의 html 파일 내에서 유일하며 모든 파일에서 동일하다. 코드 추출물 (H1) 이름 (/ H1) 위PHP - 두 요소의 내부 HTML 코드를 가져 오는 중

if ($handle = opendir('.')) { 
    while (false !== ($entry = readdir($handle))) { 
     if ($entry != "." && $entry != "..") { 
      $string= file_get_contents($entry); 
      $pattern = "/<h1>(.*?)<\/h1>/"; 
      preg_match_all($pattern, $string, $uname); 
      $pattern = '/<p class=\"user_info\"><strong>(.*?)<\/strong><\/p>/'; 
      preg_match_all($pattern, $string, $udesc); 
      echo "NAME: ".$uname[1][0]."<br>"; 
      echo "DESC: ".$udesc[1][0]."<br>"; 
      //MYSQL SAVING WILL GO HERE 
     } 
    } 
    closedir($handle); 
} 

(즉 (== <과 상상) ==>) 부분,하지만 (P 클래스 = "user_info") (강한 : 나는 이것을 시도) 내용 (/ 강한) (/ p) 부분, 그냥 비어 있습니다.

나는 또한 시도 다른 방법 : 코드 위

if ($handle = opendir('.')) { 
    while (false !== ($entry = readdir($handle))) { 
     if ($entry != "." && $entry != "..") { 
      $string= file_get_contents($entry); 
      $doc = new DOMDocument(); 
      $doc->loadHTML($string); 
      $h1 = $doc->getElementsByTagName('h1')->item(0)->textContent; 
      echo "NAME: ".$h1."<br>"; 
      $p = $doc->saveHtml($doc->getElementsByTagName('p')->item(0)); // $p = $doc->getElementsByTagName('p')->item(0)->textContent; loads content, just without html tags, so I can not use it... :S 
      echo "DESC: ".$p."<br>"; 
      //MYSQL SAVING WILL GO HERE 
     } 
    } 
    closedir($handle); 
} 

는하지만 예상하지 작동하기 때문에. 단락뿐만 아니라 텍스트의 완전한 HTML 코드가 필요합니다. 나는 또한 $ doc-> savehtml(), 아직 아무것도 시도했다.

미리 감사드립니다.

+0

당신이 시도 않았다'$ doc-> saveHtml ($ doc-> getElementsByTagName ('P') -> 아이템 (0))'('없이 -> textContent')? – metadings

+0

@metadings : 예, 이제 다시 시도해보십시오. 불운. : ( – DekiB

답변

0

제거 ->textContent

$h1 = $doc->saveHtml($doc->getElementsByTagName('h1')->item(0)); 
echo "NAME: ".$h1."<br>"; 
$p = $doc->saveHtml($doc->getElementsByTagName('p')->item(0)); 
+0

아니요, 작동하지 않습니다. 이유가 없습니다 ... : S – DekiB

관련 문제