par
Ripat » 02 avr. 2005, 18:37
Si aucune de tes balises ne contient de ALT, ceci devrait convenir, sinon il y aura un petit aménagement de code à faire.
$source=<<<TXT
texte<img src="image1.png" class="class1" /> texte texte <img id="id2" src='image2.png' /> texte texte <img src="image3.png" />
TXT
;
$texte[1]="Blabla";
$texte[2]="Bloblo";
$texte[3]="Blibli";
// si tu veux le même alt, choisi au hasard, dans chaque <img />
$i = rand(1, count($texte));
$nouveau_texte = preg_replace("#(<img.*?)(src=[^>]*)#si", "$1 alt=\"$texte[$i]\" $2", $source);
echo htmlentities($nouveau_texte),'<br />';
// si tu veux un alt différent dans chaque <img />
function mon_remplace_alt($captures){
global $texte;
$i = rand(1, count($texte));
$alt = ' alt="'.$texte[$i].'"';
return $captures[1].$alt.$captures[2];
}
$nouveau_texte = preg_replace_callback("#(<img.*?)(src=[^>]*)#si", "mon_remplace_alt", $source);
echo htmlentities($nouveau_texte);
Si aucune de tes balises ne contient de ALT, ceci devrait convenir, sinon il y aura un petit aménagement de code à faire.
[php]$source=<<<TXT
texte<img src="image1.png" class="class1" /> texte texte <img id="id2" src='image2.png' /> texte texte <img src="image3.png" />
TXT
;
$texte[1]="Blabla";
$texte[2]="Bloblo";
$texte[3]="Blibli";
// si tu veux le même alt, choisi au hasard, dans chaque <img />
$i = rand(1, count($texte));
$nouveau_texte = preg_replace("#(<img.*?)(src=[^>]*)#si", "$1 alt=\"$texte[$i]\" $2", $source);
echo htmlentities($nouveau_texte),'<br />';
// si tu veux un alt différent dans chaque <img />
function mon_remplace_alt($captures){
global $texte;
$i = rand(1, count($texte));
$alt = ' alt="'.$texte[$i].'"';
return $captures[1].$alt.$captures[2];
}
$nouveau_texte = preg_replace_callback("#(<img.*?)(src=[^>]*)#si", "mon_remplace_alt", $source);
echo htmlentities($nouveau_texte);[/php]