Bài toán này dễ gặp nhất khi chúng ta thực hiện việc bóc tách dữ liệu từ các website khác. Kĩ thuật tuy không khó nhưng không phải ai cũng biết :D. Trong bài viết này chúng ta sẽ nghiên cứu xem làm thế nào để lấy dữ liệu giữa các tag.
Phương pháp lấy nội dung từ tag
Bằng cách sử dụng một trong hai hàm preg_match() hoặc preg_match_all(), chúng ta có thể thực hiện dễ dàng:
(.*?)/";
preg_match($pattern, $string, $matches);
return $matches[1];
}
?>
Cách này khá đơn giản và dễ dùng tuy nhiên tốc độ tìm kiếm và code lập trình của bạn sẽ nhiều hơn và ít sáng sủa hơn. Chúng ta hãy cùng xem thử một cách khác: sử dụng DOM function.
loadXML($html);
}
else
{
$dom->loadHTML($html);
}
/*** discard white space ***/
$dom->preserveWhiteSpace = false;
/*** the tag by its tag name ***/
$content = $dom->getElementsByTagname($tag);
/*** the array to return ***/
$out = array();
foreach ($content as $item)
{
/*** add node value to the out array ***/
$out[] = $item->nodeValue;
}
/*** return the results ***/
return $out;
}
?>
Trong đó các giá trị:
$tag :Tag để tìm
$html: nguồn HTML hoặc XML để tìm kiếm.
$strict: cho biết load HTML hay XML. Trong hàm trên chúng ta mặc định load HTML.
Hãy so sánh cách sử dụng để biết cách làm nào tiện dụng và sáng sủa hơn.
Sử dụng cách 1:
Heading
NHANWEB.COM
paragraph here
Paragraph with a LINK TO NHANWEB
This is a broken paragraph