Ce script permet de dresser la liste des attributs à filtrer dans un code source donné.
Voici la fonction principale, sobrement appelée Sky Cleanup Attributes : elle permet de filtrer des attributs définis dans une liste. Il suffit de passer le code dans une variable et la fonction filtre et retourne le code final, sans les attributs gênants.
Prenons le code HTML suivant:
Passons maintenant ce code dans notre fonction :
Et voici le résultat final:
Une manière simple et efficace de nettoyer le code automatiquement, avec une maintenance minimale.
Peace
Sky Cleanup Attributes
Voici la fonction principale, sobrement appelée Sky Cleanup Attributes : elle permet de filtrer des attributs définis dans une liste. Il suffit de passer le code dans une variable et la fonction filtre et retourne le code final, sans les attributs gênants.
PHP:
<?php
/*
|-----------------------------------------------------------------------
| Sky Cleanup Attributes by Matt - www.skyminds.net
| -----------------------------------------------------------------------
|
| Clean up unwanted HTML attributes defined in a list in given HTML code and return cleaned output.
|
*/
function sky_cleanup_attributes($source)
{
// Define a list of attributes to remove in an array.
$remove = array('style', 'class', 'target', 'someattribute');
$cleanstring = $source;
foreach($remove as $attribute)
{
$cleanstring = preg_replace('!\\s+'.$attribute.'=("|\')?[-_():;a-z0-9 ]+("|\')?!i','',$cleanstring);
}
return $cleanstring;
}
?>
Exemple d’application
Prenons le code HTML suivant:
PHP:
<?php
$html = '<span style="font-weight:bold;background:red;">this span has a style attribute</span>
<div class="noborder" someattribute="hello-world">this div has two different attributes</div>
<div class="leftclass redclass">this div has two classes applied in one attribute</div>
<a href="https://www.skyminds.net/" target="_blank">Sky Cleanup Attributes by Matt</a>';
?>
Passons maintenant ce code dans notre fonction :
PHP:
<?php
// Clean up input source
$cleaned = sky_cleanup_attributes($html);
// Echo cleanup code (in textarea for demo purposes)
echo '<textarea style="width: 100%; height: 200px;">' . htmlentities($cleaned) . '</textarea>';
?>
Et voici le résultat final:
PHP:
<span>this span has a style attribute</span>
<div>this div has two different attributes</div>
<div>this div has two classes applied in one attribute</div>
<a href="https://www.skyminds.net/">Sky Cleanup Attributes by Matt</a>
Une manière simple et efficace de nettoyer le code automatiquement, avec une maintenance minimale.
Peace