✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Kuidas eemaldada pilte DOMDocumentiga

35

Olen kirjutanud DOMDocumentist mõnes teises postituses (1, 2, 3, et jagada mõnda), kuid leian, et see on jätkuvalt mitmel viisil kasulik.

Pidage meeles, et DOMDocument on PHP klass, mis võimaldab meil HTML-dokumendiga manipuleerida enne selle brauseris renderdamist.

Kasutusjuhendist :

Esindab tervet HTML- või XML-dokumenti; toimib dokumendipuu juurena.

Alati, kui mõtlen funktsiooniga töötamisele saveHTML, mõtlen sellele, et enne brauserisse saatmist tuleb uus teave failiks või muuks väljundvoogu järjestada.

Aga me ei pea seda tegema. Seda saab teha mälus.

Näide: projektis pean leidma dokumendist kõik pildielemendid. Kui pildil ei ole kehtivat allika URL-i, pean lähteatribuudi asendama või eemaldama.

Kuidas eemaldada pilte DOMDocumentiga

Selle näite puhul eeldage järgmist

  • isValidImageon funktsioon, mis vastutab selle kontrollimise eest, kas määratud lähteatribuut loob kehtiva URL-i,
  • et määran srcatribuudiks tühja stringi, mitte kohatäite kujutise, et kood oleks lihtne,
  • Ja ma tagastan tulemuse sellele, mis mallis või osalises renderdatakse.

Kommenteerisin koodi, nii et selle näite puhul peaks seda olema piisavalt lihtne järgida:

<?php

// Instantiate a DOMDocument object and load the incoming $description HTML.
$domDocument = new DOMDocument();
$domContent = $domDocument->loadHTML(mb_convert_encoding($description, 'HTML-ENTITIES'));

// Find all of the images in the HTML.
$images = $domDocument->getElementsByTagName('img');

// If there are images, then iterate through each of them.
if (0 !== count($images)) {
    $urlPrefix = $this->getUrlPrefix(); // A helper function for getting the URL prefix.
    foreach ($images as $image) {
        $image->setAttribute(
            'src',
            $urlPrefix.$image->getAttribute('src')
        );

        // If the image's source results in a 404 status code, set the `src` to an empty string.
        if (!$this->isValidImage($image->getAttribute('src'))) {
            $image->setAttribute('src', '');
        }
    }
}

// Save the changed document and send it to the front-end.
return $domDocument->saveHTML();

Pange tähele, et ülaltoodud koodi saab täiustada mitmel viisil (nt varakult naasmine, kui pilte ei leita), kuid eesmärk on näidata, kuidas srcatribuuti asendada, kui URL ei lahene õigesti. Seega piltide eemaldamine DOMDocumentiga.

Kui olete huvitatud sellest, kuidas teha kindlaks, kas URL on kehtiv, võib see artikkel abiks olla.

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem