Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
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 25/02/2011, 09h58   #1
Futur Membre du Club
 
Inscription : mars 2010
Messages : 105
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 105
Points : 18
Points : 18
Par défaut Faire une recherche d'une chaine dans une autre chaine

Bonjour à tous,

je cherche le moyen de faire une recherche d'une chaine dans une autre chaine.

En gros j'ai deux variables : $findme = '27' et $chaine = '1;5;10;27;'

et je voudrais réaliser un test qui vérifie si mon $findme est compris dans $chaine.

j'ai déja fait quelques essais mais non concluant:

Code :
1
2
3
4
5
6
7
8
 
 
$findme= '27'
	$test = strpos($findme, $chaine);
	if($test === false)
	{
		$findme= -1;
	}
Nheil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 11h37   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Ton code fonctionne.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 11h43   #3
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
par contre si tu cherches 2 il va le trouver aussi, c'est que tu souhaites ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 11h53   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
C'est l'inverse : int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

Donc ton code doit être:
Code :
1
2
3
4
 
if (strpos($chaine, $findme) !== false) { 
  echo "trouvé";
}
On cherche toujours l'aiguille dans la botte de foin et non l'inverse...
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 11h57   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
Citation:
Envoyé par Benjamin Delespierre Voir le message
C'est l'inverse : int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )

Donc ton code doit être:
Code :
1
2
3
4
 
if (strpos($chaine, $findme) !== false) { 
  echo "trouvé";
}
On cherche toujours l'aiguille dans la botte de foin et non l'inverse...
sauf que la c'est : botte de foin et aiguille
donc le mémo-technique ne marche pas (sauf pour les fonctions array ou la c'est bon)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 12h08   #6
Futur Membre du Club
 
Inscription : mars 2010
Messages : 105
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 105
Points : 18
Points : 18
Mon problème n'est pas résolu, je vais mettre mes valeurs exactes plutot que des exemples

dept = 55 depts = 12;14;21;27;31;35;39;55;61;64;67;71;76;79;85;89;

Code :
1
2
3
4
5
6
 
$test = strpos($dept, $depts);
if($test === false)
{
	$dept = -1;
}
sur cette exemple $dept = -1... je ne comprend pas pourquoi
Nheil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 12h11   #7
Futur Membre du Club
 
Inscription : mars 2010
Messages : 105
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 105
Points : 18
Points : 18
Rah de rah, mon $dept et $depts étaient inversés...

Merci !
Nheil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 13h06   #8
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 014
Points : 5 014
J'ai pas mentionné de moyen mnémotechnique...

Chopez votre cheatsheet et imprimez là, ça sert toujours: http://www.addedbytes.com/cheat-sheets/php-cheat-sheet/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre 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 16h52.


 
 
 
 
Partenaires

Hébergement Web