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 26/06/2008, 19h44   #1
Membre expérimenté
 
Étudiant
Inscription : juillet 2004
Messages : 777
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2004
Messages : 777
Points : 527
Points : 527
Par défaut Erreur avec preg_match_all

Bonjour à tous

Voila j'ai un problème avec mon bout de code suivant:
Code :
1
2
3
$exp = '`\<[\w]+ src="([\w.]+)" [\</\w]+\>`im';
echo $exp;
preg_match_all($exp, $this->message, $out);
J'obtiens cette erreur:
Citation:
Warning: preg_replace() [function.preg-replace]: Empty regular expression in C:\Documents and Settings\Benjy\Bureau\ZMWS\_web.zmwsc\Mail.class.php on line 155
Je ne comprends absolument pas pourquoi j'ai cette erreur!
Le echo affiche bien la chaîne qui content la regex.

Si quelqu'un a une idée

Merci à vous
cerede2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 19h50   #2
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,
Citation:
Envoyé par cerede2000
Si quelqu'un a une idée
Ben là, pas trop : le message d'erreur mentionne l'utilisation de preg_replace(), et dans l'extrait de code que tu as posté figure preg_match_all(). Ca va pas être facile...
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 19h55   #3
Membre expérimenté
 
Étudiant
Inscription : juillet 2004
Messages : 777
Détails du profil
Informations personnelles :
Âge : 25

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juillet 2004
Messages : 777
Points : 527
Points : 527
Oula oui en effet je me suis planté de ligne lol.

Voici le code qui pose soucis:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
preg_match_all('`\<[\w]+ src="([\w.]+)" [\</\w]+\>`im', $this->message, $out);
		$file[0] = array();
		foreach($out[1] as $name) {
			if(file_exists($name)) {
				if(!in_array($name,$file[0])) {
					$ID = md5( uniqid ( rand() ) ).$_SERVER['SERVER_NAME'];
					$file[0][$name] = $ID;
					$file[1][$name] = '`(\<[\w]+ )src="' . $name . '"( [\</\w]+\>)`';
					$file[2][$name] = '$1src="cid:'.$ID.'"$2';
				}
			}
			else {
				$erreur .= 'Erreur, fichier '. $name .' pour l\'attachement inexistant<br />';
			}
		}
		$this->message = preg_replace($file[1],$file[2], $this->message);
Et l'erreur est donc avec le preg_replace mais je ne comprend pas pourquoi
cerede2000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 10h06   #4
Membre Expert
 
Homme
Inscription : janvier 2004
Messages : 1 238
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Finance

Informations forums :
Inscription : janvier 2004
Messages : 1 238
Points : 1 421
Points : 1 421
et si avant l'execution du preg_replace tu affichait le contenu de $file[1], $file[2] et $this->message ? Comme ca on aurais pas besoin d'activer le compilateur PHP se situant dans notre cerveau en imaginant tout ce que peuvent contenir tes variables et on pourrait se concentrer sur l'expression réguliere proprement dite ;o)
__________________
PHP :
Regle n°1 : mysql_query(...), mysql_connect(...) et mysq_select_db(...) doivent EN DEBUG etre suivies de or die(mysql_error()); (mais jamais en production)
Regle n°2 : Mieux encore : mysql_query($requete) or die("$requete<br/>".mysql_error());
Regle n°3 : echo '<pre>';var_dump($var);echo '</pre>'; affiche le contenu et le type d'une variable.
Publiez vos textes de fantasy et de science-fiction sur http://www.cercledefaeries.com/concours/
Fladnag 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 21h02.


 
 
 
 
Partenaires

Hébergement Web