Ajout d'attributs à des tags HTML avec PHP

Publié le 01/10/2023 • Actualisé le 01/10/2023


English language detected! 🇬🇧

  We noticed that your browser is using English. Do you want to read this post in this language?

Read the english version 🇬🇧 Close

Dans ce bout de code, nous voyons comment ajouter des attributs à des tags HTML avec PHP. Dans l'exemple suivant, on utilise la librairie DOMDocument pour parser du HTML, en extraire les liens et leur ajouter un attribut class ayant la valeur "prettty". On doit utiliser les drapeaux LIBXML_HTML_NOIMPLIED LIBXML_HTML_NODEFDTD ou la sortie contiendrait des tags additionnels body et doctype.


<?php

declare(strict_types=1);

namespace App\Controller\Snippet;

/**
 * J'utilise un trait PHP afin d'isoler chaque snippet dans un fichier.
 * Ce code doit être apellé d'un contrôleur Symfony étendant AbstractController (depuis Symfony 4.2)
 * ou Symfony\Bundle\FrameworkBundle\Controller\Controller (Symfony <= 4.1).
 * Les services sont injectés dans le constructeur du contrôleur principal.
 */
trait Snippet277Trait
{
    public function snippet277(): void
    {
        $html = '<ul><li><a href="/foo">foo</a></li><li><a href="/bar">bar</a></li></ul>';
        echo $html;

        $dom = new \DOMDocument();
        $dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD);
        $aTags = $dom->getElementsByTagName('a');
        foreach ($aTags as $aTag) {
            $aTag->setAttribute('class', 'pretty');
        }
        echo PHP_EOL;

        echo $dom->saveHTML();

        // That's it! 😁
    }
}

 Exécuter le snippet  Plus sur Stackoverflow   Lire la doc  Plus sur le web  Snippet aléatoire

  Travaillez avec moi !