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 07/11/2006, 15h38   #1
Invité de passage
 
Inscription : novembre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3
Points : 1
Points : 1
Par défaut Récupération d'un nom de fichier

Bonjour à tous.

Je souhaite exporter un blog (DotClear) vers un PDF avec FPDF.

Pour le texte, pas difficile, pour l'image c'est du code HTML

Citation:
<img src='images/dossier/monimage.jpg'>
J'aimerai extraire le nom du fichier, sachant qu'il peut y avoir du texte avant et après ou plusieurs images.

Je pense qu'il faut passer par les REGEXP mais je m'en sors pas.
Si vous aviez une idée, ca m'aiderait enormement. :
cbb51800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 16h39   #2
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Imaginons que tu as ton code dans une variable string :
Code :
$ligne = "<img src='images/dossier/monimage.jpg'>";
Tu dois pouvoir extraire le nom de l'image par les regexp made in perl :

Code :
$nom_img = preg_replace('/.*src=\'.*\/(.*\.jpg)\'/' , '$1' , $ligne);
$nom_img doit alors contenir "monimage.jpg"

PS : je n'ai pas le quoi tester sur place, il peut y avoir une petite erreur dans la regexp mais l'idée est là.

JM
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 16h59   #3
Invité de passage
 
Inscription : novembre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3
Points : 1
Points : 1
Merci

Peux tu detailler la regex je voudrais pas mourir bete.


Je voulais pas aller aussi loin, parce que je veux le chemin complet de l'image
cbb51800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 17h35   #4
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Décortiquons cte vilaine bébête :
Code :
/.*src=\'.*\/(.*\.jpg)\'/
/ : debut de la regexp

.*src=\' : tout ce qu'il y jusqu'à "src='". Notons bien l'échapement du guillemet : \'. Par forcément utile, mais je préfère pas jouer au plus con avec ce genre de caractère. Comme ça, je suis peinard.

.*\/ : tout ce qu'il y a jusqu'au dernier slash, ce dernier étant aussi échappé, et ce coup-ci c'est obligatoire.

(.*\.jpg) : j'attrape le nom de l'image en repérant l'extension .jpg Pour ce faire, encore obligation d'échapper le point.

\' : le dernier guillemet échappé. Ca c'est facultatif, c'est pour être sûr d'être au bon endroit

/ : fin de l'expression

Nous aurons dans la variable "magique" $1 ce qui est attrapé dans la première paire de parenthèses, à savoir (.*\.jpg) et ce qui doit être justement ce qu'on veut... Si tout va bien
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/11/2006, 17h38   #5
Modérateur
 
Avatar de s.n.a.f.u
 
Homme
Développeur Web
Inscription : août 2006
Messages : 2 700
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 37
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : août 2006
Messages : 2 700
Points : 3 357
Points : 3 357
Pour le chemin de l'image, c'est vachement plus simple :

Code :
1
2
 
$path = preg_replace('/.*src=\'(.*)\'/ , '$1' , $ligne);
ou si tu veux être sûr de choper du jpeg :

Code :
1
2
 
$path = preg_replace('/.*src=\'(.*\.jpg)\'/ , '$1' , $ligne);
s.n.a.f.u est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2006, 09h36   #6
Invité de passage
 
Inscription : novembre 2006
Messages : 3
Détails du profil
Informations forums :
Inscription : novembre 2006
Messages : 3
Points : 1
Points : 1
Merci je teste tout ca des que je trouve le temps ..........
cbb51800 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h45.


 
 
 
 
Partenaires

Hébergement Web