PHP:
פיענוח HTML

איך לעשות:

לניתוח HTML, מתכנתי PHP יכולים להשתמש בפונקציות מובנות או להיעזר בספריות חזקות כמו Simple HTML DOM Parser. כאן, נחקור דוגמאות באמצעות ה-DOMDocument של PHP וה-Simple HTML DOM Parser.

באמצעות DOMDocument:

המחלקה DOMDocument של PHP היא חלק מההרחבה ה-DOM שלו, שמאפשרת ניתוח ומניפולציה של מסמכי HTML ו-XML. הנה דוגמא מהירה איך להשתמש ב-DOMDocument כדי למצוא את כל התמונות במסמך HTML:

$html = <<<HTML
<!DOCTYPE html>
<html>
<head>
    <title>דף דוגמה</title>
</head>
<body>
    <img src="image1.jpg" alt="תמונה 1">
    <img src="image2.jpg" alt="תמונה 2">
</body>
</html>
HTML;

$doc = new DOMDocument();
@$doc->loadHTML($html);
$images = $doc->getElementsByTagName('img');

foreach ($images as $img) {
    echo $img->getAttribute('src') . "\n";
}

פלט לדוגמה:

image1.jpg
image2.jpg

באמצעות Simple HTML DOM Parser:

למשימות מורכבות יותר או תחביר נוח יותר, ייתכן שתעדיף להשתמש בספריה של צד שלישי. Simple HTML DOM Parser הוא בחירה פופולרית, שמספקת ממשק דומה ל-jQuery לניווט ומניפולציה של מבנים HTML. הנה איך להשתמש בו:

ראשית, התקן את הספריה באמצעות Composer:

composer require simple-html-dom/simple-html-dom

אחר כך, מניפול את ה-HTML למצוא למשל את כל הקישורים:

require_once 'vendor/autoload.php';

use simplehtmldom\HtmlWeb;

$client = new HtmlWeb();
$html = $client->load('http://www.example.com');

foreach($html->find('a') as $element) {
    echo $element->href . "\n";
}

קטע הקוד הזה ייקח את תוכן ה-HTML של ‘http://www.example.com’, ינתח אותו, וידפיס את כל הקישורים. זכור להחליף את ‘http://www.example.com’ ב-URL האמיתי שאתה רוצה לנתח.

בעזרת שיטות אלו, מפתחי PHP יכולים לנתח תוכן HTML ביעילות, להתאים את חילוץ הנתונים לצרכים שלהם, או לשלב תוכן אינטרנטי חיצוני בפרויקטים שלהם בחלקות.