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 27/08/2007, 11h26   #1
Invité de passage
 
Inscription : août 2007
Messages : 13
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : août 2007
Messages : 13
Points : 4
Points : 4
Par défaut Test d'une variable

Bonjour,

Je monte un CMS et je voudrais savoir comment faire pour tester si une expression comporte certains caractères.

Mon cas est le suivant:

J'ai une variable et je souhaiterais tester si elle comporte les caractères { et } (ils peuvent apparaitre plusieurs fois dans la variable) et recuperer la chaine entre ces caracteres.

Merci d'avance
Kyros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 11h56   #2
Membre habitué
 
Inscription : mai 2002
Messages : 101
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mai 2002
Messages : 101
Points : 106
Points : 106
Hello,

en combinant des appels à strpos (http://ch2.php.net/manual/fr/function.strpos.php) pour trouver tes caractères { et } avec substr (http://ch2.php.net/manual/fr/function.substr.php), tu devrais y arriver dans trop de problème
Cold Hand est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 12h10   #3
Membre chevronné
 
Avatar de Korko Fain
 
Étudiant
Inscription : août 2005
Messages : 632
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 632
Points : 632
Points : 632
Code :
if( preg_match_all('#{([^}]*)}#', $code, $matches) )
Tes contenus sont dans $matches[1]
Korko Fain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 12h16   #4
Invité de passage
 
Inscription : août 2007
Messages : 13
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : août 2007
Messages : 13
Points : 4
Points : 4
Merci à vous deux j'avoue que je vais choisir la solution de facilité et que je vais essayer la deuxième solution.

Je vous tiens au courant.
Kyros est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/08/2007, 13h07   #5
Membre chevronné
 
Avatar de Korko Fain
 
Étudiant
Inscription : août 2005
Messages : 632
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 632
Points : 632
Points : 632
Elle est plus simple mais pas forcement plus rapide faudrait essayer
Korko Fain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/08/2007, 13h32   #6
Invité de passage
 
Inscription : août 2007
Messages : 13
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations forums :
Inscription : août 2007
Messages : 13
Points : 4
Points : 4
Bon c'est bon je m'en suis sorti avec strpos et substr.

Voila mon code si besoin est:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
$tagdeb='{';
$posdeb=strpos($contenu_page, $tagdeb);
$tagfin='}';
$posfin=strpos($contenu_page, $tagfin);
if (($posdeb == false)&&($posfin == false)) echo $contenu_page;
else
{
	echo substr($contenu_page, 0, $posdeb);
	$long=$posfin-($posdeb+1);
	$tag=substr($contenu_page, $posdeb+1, $long);
	$sql3="SELECT ".$table_tag_utilisateur.".code_tag FROM ".$table_tag_utilisateur." WHERE ".$table_tag_utilisateur.".nom_tag='".$tag."' AND ".$table_tag_utilisateur.".id_site=".$_SESSION['idsite'].";";
	$result3=mysql_query($sql3);
	while ($ligne3 = mysql_fetch_array($result3)) { $code_tag=$ligne3[0]; }
	echo "<?php ".$code_tag." ?>";
	echo substr($contenu_page, $posfin+1);
}
Ps: L'inconvenient de ce code c'est qu'il repère qu'une fois les { et }.
J'ai la flemme de dévelloper une fonction
Kyros 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 11h12.


 
 
 
 
Partenaires

Hébergement Web