ereg_replace dans du texte html

WRInaute accro
Bonsoir à tous !

Rome ne s'étant pas fait en un jour, je suis toujours en train de me prendre le crâne sur des expressions régulières (je me pose des défis pour arriver à saisir la substantifique moêle du truc).

Le challenge du jour : sur mon blog je n'ai jamais mis une seule balise alt sur les images, et j'aimerais y remédier. Comme je suis pas tout stupide non plus, mes images sont nommées de manière intelligente (genre nom-du-livre-auteur.jpg). Ce que j'aimerais faire c'est extraire le src des images, remplacer les - par des espaces et coller le tout dans un attribut alt, et ce pour chaque image jpg présente.

J'utilise donc le bout de code suivant :

Code:
$sql = "SELECT post_id,post_content FROM blog_post WHERE cat_id!=5 ORDER BY post_titre";
$res = mysql_query($sql);
while ($row = mysql_fetch_array($res))
{
	$chaine=preg_replace('/<img(.+)src="([^"]*.jpg)"(.+)>/si','<img src="$2" alt="$2" (.+)>', $row['post_content']); 
	echo $chaine;
	
}

mais ca ne fait pas du tout ce que j'avais escompté ( ca afit surtout un bordel monstrueux dans mon code html).

Quelqu'un voit où je merdoye, pour changer ?
 
WRInaute passionné
lol

si tu avais stocké juste le nom de fichier tu n'en serais pas la

donc à mon avis faut d'abord extraire le filename

et ensuite reconstruire ta balise

rog
 
WRInaute accro
rog a dit:
lol

si tu avais stocké juste le nom de fichier tu n'en serais pas la

donc à mon avis faut d'abord extraire le filename

et ensuite reconstruire ta balise

rog

Certes mais c'est un dotclear dont il est question, qui ne stocke pas les infos pour chaque image présente dans le content...
 
WRInaute discret
salut

Ca devrait rouler comme ça :

Code:
<?php

$chaine = '<img src="plouf-plif.jpg" /> ....  <img src="rahhhhh-et-hop.jpg" />';

function cbkALT($m) {
	$alt = str_replace('-', ' ', $m[1]);
	return '<img src="'. $m[1] .'.jpg" alt="'.$alt.'"';
}

$chaine=preg_replace_callback('`<img  *src="(.+?)\.jpg"`si','cbkALT', $chaine);
echo htmlspecialchars($chaine);
?>

affichera :

<img src="plouf-plif.jpg" alt="plouf plif" /> .... <img src="rahhhhh-et-hop.jpg" alt="rahhhhh et hop" />

fab
 
WRInaute accro
O la j'ai bien compris que tu entravais que dale aux REGEXs mon kanard !!! D'un autre coté; temps machine, ta solution est la plus rapide !! lol

rog a dit:
lol

si tu avais stocké juste le nom de fichier tu n'en serais pas la

donc à mon avis faut d'abord extraire le filename

et ensuite reconstruire ta balise

rog
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut