현재 전환 과정에 있으며 기존 웹 사이트의 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(), 아직 아무것도 시도했다.
미리 감사드립니다.
당신이 시도 않았다'$ doc-> saveHtml ($ doc-> getElementsByTagName ('P') -> 아이템 (0))'('없이 -> textContent')? – metadings
@metadings : 예, 이제 다시 시도해보십시오. 불운. : ( – DekiB