Ajout d'attributs à des tags HTML avec PHP
Publié le 01/10/2023 • Actualisé le 01/10/2023
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