Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 10/05/2007, 11h11   #1
Invité de passage
 
Inscription : mai 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : mai 2007
Messages : 2
Points : 1
Points : 1
Par défaut Remplacement dans une chaine avec PHP, possible ou impossible ?

Bonjour,

J'ai un truc qui me semble bien compliqué à réaliser...

J'ai une chaine qui contient le code HTML d'une page web.
Dans cette chaine se trouve 1 ou plusieures portions du genre :

Code HTML :
<img src="http://mondomaine.com/video.gif?w=AAA&h=BBB&bd=CCC&hd=DDD">

Chaqu'une de ces sections doit être remplacée par un code du genre :

Code HTML :
1
2
3
4
5
6
<div id="numeroN">
Largeur : AAA<br>
Hauteur : BBB<br>
Fichier BD : CCC<br>
Fichier HD : DDD
</div>

Donc par exemple si dans la chaine se trouve ce code :

Code HTML :
1
2
3
4
5
6
7
8
Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
<img src="http://mondomaine.com/video.gif?w=320&h=450&bd=test.mov&hd=essai.mov">
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
<img src="http://mondomaine.com/video.gif?w=450&h=200&bd=alpha.mov&hd=beta.avi">
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
<img src="http://mondomaine.com/video.gif?w=180&h=50&bd=gamma.mov&hd=delta.mov">
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla

La transformation devra retourner cela :

Code HTML :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
<p id="numero1">
Largeur : 320<br>
Hauteur : 450<br>
Fichier BD : test.mov<br>
Fichier HD : essai.mov
</p>
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
<p id="numero2">
Largeur : 450<br>
Hauteur : 200<br>
Fichier BD : alpha.mov<br>
Fichier HD : beta.avi
</p>
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
<p id="numero3">
Largeur : 180<br>
Hauteur : 50<br>
Fichier BD : gamma.mov<br>
Fichier HD : delta.mov
</p>
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla

Je ne sais comment faire, ni si cela est réalisable.

Merci de votre aide !
mf412 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/05/2007, 13h40   #2
Fabouney
Invité(e)
 
Messages : n/a
Détails du profil
Informations forums :
Messages : n/a
Points : 0
Bonjour,

c'est tout à fait possible.

exécute le code que je viens de faire pour te montrer l'idée, affiche la source et vois le résultat :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
$content = <<<EOF
Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
<img src="http://mondomaine.com/video.gif?w=320&h=450&bd=test.mov&hd=essai.mov">
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
<img src="http://mondomaine.com/video.gif?w=450&h=200&bd=alpha.mov&hd=beta.avi">
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
<img src="http://mondomaine.com/video.gif?w=180&h=50&bd=gamma.mov&hd=delta.mov">
bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla
EOF;
 
$pattern = '/<img src="http:\/\/.+\?w=(.*)&h=(.*)&bd=(.*)&hd=(.*)">/';
$i=1;
function achanger($martchs)
{
	global $i;
	return "<p id=\"numero$i\">\nlargeur : ".$martchs[1]."<br>\nHauteur : ".$martchs[2]."<br>\nFichier BD : ".$martchs[3]."<br>\nFichier HD : ".$martchs[4]."\n</p>";
	$i++;
}
$content = preg_replace_callback($pattern,'achanger',$content);
echo $content;
j'ai pris ton exemple de source HTML.

Cordialement.
  Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h33.


 
 
 
 
Partenaires

Hébergement Web