Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengekstrak Teks daripada Elemen HTML dengan Kelas Tertentu ke dalam Tatasusunan Rata menggunakan PHP DOM?

Bagaimana untuk Mengekstrak Teks daripada Elemen HTML dengan Kelas Tertentu ke dalam Tatasusunan Rata menggunakan PHP DOM?

DDD
DDDasal
2024-11-15 17:18:03877semak imbas

How to Extract Text from HTML Elements with Specific Classes into Flat Arrays using PHP DOM?

Mengekstrak Teks Rata daripada Elemen dengan Kelas Ditetapkan Menggunakan PHP DOM

Mengekstrak teks daripada elemen HTML tertentu ialah tugas biasa dalam pembangunan web. PHP DOM menyediakan alat yang mantap untuk menghuraikan HTML dan mengakses kandungannya. Artikel ini menangani keperluan khusus untuk mengekstrak teks daripada elemen dengan kelas yang dicalonkan kepada dua tatasusunan rata.

Masalah

Diberikan kandungan HTML yang mengandungi teks yang diedarkan antara berbilang elemen p dengan berselang-seli nama kelas, tugasnya adalah untuk menyimpan teks ke dalam dua tatasusunan: satu untuk tajuk dan satu untuk kandungan. Sebagai contoh, diberikan HTML berikut:

<p class="Heading1-P">
    <span class="Heading1-H">Chapter 1</span>
</p>
<p class="Normal-P">
    <span class="Normal-H">This is chapter 1</span>
</p>

Kita perlu mendapatkan output berikut:

$heading = ['Chapter 1', 'Chapter 2', 'Chapter 3'];
$content = ['This is chapter 1', 'This is chapter 2', 'This is chapter 3'];

Penyelesaian

Untuk mencapai ini pengekstrakan menggunakan PHP DOM, kami menggunakan DOMDocument dan DOMXPath. Penyelesaiannya melibatkan langkah berikut:

  1. Muatkan HTML ke dalam objek DOMDocument:
$dom = new DOMDocument();
$dom->loadHTML($test);
  1. Buat objek DOMXPath untuk melaksanakan XPaths:
$xpath = new DOMXPath($dom);
  1. Gunakan fungsi parseToArray() untuk mengekstrak teks daripada elemen dengan kelas tertentu:
$heading = parseToArray($xpath, 'Heading1-H');
$content = parseToArray($xpath, 'Normal-H');

Dalam fungsi parseToArray():

  • Ia melakukan pertanyaan XPath untuk kelas yang ditetapkan.
  • Lelaran melalui nod yang dipadankan dan mengekstrak kandungan teksnya.
  • Menyimpan teks yang diekstrak dalam tatasusunan, yang dikembalikan.

Berikut ialah kod PHP lengkap:

query($xpathquery);

    $resultarray = [];
    foreach ($elements as $element) {
        $nodes = $element->childNodes;
        foreach ($nodes as $node) {
            $resultarray[] = $node->nodeValue;
        }
    }

    return $resultarray;
}

$test = <<
    Chapter 2

This is chapter 2

Chapter 3

This is chapter 3

HTML; $dom = new DOMDocument(); $dom->loadHTML($test); $xpath = new DOMXPath($dom); $heading = parseToArray($xpath, 'Heading1-H'); $content = parseToArray($xpath, 'Normal-H'); var_dump($heading); echo "
"; var_dump($content); echo "
";

Pendekatan ini menggunakan kuasa PHP DOM dan XPath untuk mengekstrak teks daripada dokumen HTML dengan cekap, membolehkan manipulasi kandungan yang lebih kompleks dan disasarkan.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Teks daripada Elemen HTML dengan Kelas Tertentu ke dalam Tatasusunan Rata menggunakan PHP DOM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn