Rumah > pembangunan bahagian belakang > tutorial php > 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
Lepaskan: 2024-11-15 17:18:03
asal
930 orang telah melayarinya

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>
Salin selepas log masuk

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'];
Salin selepas log masuk

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);
Salin selepas log masuk
  1. Buat objek DOMXPath untuk melaksanakan XPaths:
$xpath = new DOMXPath($dom);
Salin selepas log masuk
  1. Gunakan fungsi parseToArray() untuk mengekstrak teks daripada elemen dengan kelas tertentu:
$heading = parseToArray($xpath, 'Heading1-H');
$content = parseToArray($xpath, 'Normal-H');
Salin selepas log masuk

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 "
";
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan