Help : (str_replace) et (split ou explode) ne marchent pas ! ?

slmnsnts Messages postés 25 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 31 août 2007 - 15 oct. 2004 à 11:48
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 - 25 oct. 2004 à 13:43
Salut tt le monde !
G ajouté une page de recherche dans mon forum et ca marche tres bien ... le seul prob C lorsque qu'on cherche des mots avec plusieur espace (exp : "php upload" )

voici le code source :

$le_mot=strtoupper($_POST['Mots']); //le mot a rechercher

$le_mot=str_replace(" ", " ", $le_mot);// remplacer les double espace par un seul comme ca jaurai qu'un seul espace entre chaque mot et G tester avec un echo : ca marche ! mais apres :

$les_mots = split(" ", $le_mot); // je decoupe les mots mais il ne prend pas en considairation le str_replace !

//tt ceci pour arriver a :
$taille=count($les_mots);
for($i=0;$i<$taille;$i++)

{
$sql=$sql."(Sujet like ucase('%".$les_mots[$i]."%'))";
if ($i!=$taille-1) {$sql=$sql." and ";}
}

aidez oi SVP et merci d'avance @+

12 réponses

phpwankenobi Messages postés 152 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 18 novembre 2004
15 oct. 2004 à 14:48
Salut,

Utilises plutôt la fonction suivante :

str_word_count

elle te retourne un tableau avec tous les mots de ta chaîne.

Le lien :

http://www.nexen.net/docs/php/annotee/function.str-word-count.php

A+
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
15 oct. 2004 à 18:18
Salut ;-)

Tu peux utiliser explode à la place de split.

Es-tu sûr que explode ne fonctionne pas ?

tes espaces sont-ils convertis en espaces insécables ?

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
0
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
15 oct. 2004 à 21:38
Salut slmnsnts,
Utilise plutôt explode() pour effectuer des recherches en mode logique OR.
Deplus tu va être confronter à pas mal de 'faille' d'affichage dût aux caractéres unique non metacaractéres.

Exemple de source utilisant la fonction explode() :
http://www.phpcs.com/code.aspx?ID=20903

$tab = explode(' ' , $mots);
$nb = count($tab);
$sql = "SELECT * FROM moteur WHERE description LIKE '%$tab[0]%' "; 
for($i = 1; $i < $nb; $i++){
$sql .= "OR LIKE '%$tab[$i]%'";


Fonction explode() : http://www.nexen.net/docs/php/annotee/function.explode.php

J'espere t'avoir suffisament aider, sinon laisse nous un message.

Bye.
0
slmnsnts Messages postés 25 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 31 août 2007
17 oct. 2004 à 10:57
Enfin ca marche !
Merci beaucoup les mecs pour votre aides :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Matzury Messages postés 5 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 25 octobre 2004
24 oct. 2004 à 23:35
comment a tu fait ? Parce que moi j'ai un probleme la fonction explode ne semble pas fonctionner (je suis chez free.)
Je cherche a extraire le nom d'un fichier a partir d'un chemin :
c:\dossier\fichier.ext
je essayer les 2 manieres suivante :

$lechemin= $lechemin."\fin";
$tab=explode('\\',$lechemin);
$i=0;
while ($tab[$i]!="fin")
$i++;
$nomfic=$tab[$i-1];

Mais tab est vide.
et :

$tab=explode('\\',$lechemin);
$monfic=sizeof($tab)>1?$tab[sizeof($tab)-1]:'';

Mais rien non plus apparement c bien explode qui doit deconner !
Si vous avez deja eu un probleme de ce type ca m'interresse.

Merci beaucoup.
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
24 oct. 2004 à 23:54
Salut :-)

Tu peux utiliser basename pour obtenir le nom de fichier :

$fichier=basename ($dossier);

si tu veux supprimer l'extension du fichier pour ne retourner que le nom, tu peux faire ceci :

$fichier=basename($dossier,".php");

par exemple pour enlever le ".php" (mets l'extension que tu veux)

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
0
Matzury Messages postés 5 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 25 octobre 2004
25 oct. 2004 à 00:04
Merci mais j'ai resolu le probleme apparement c simplement ke j'avai oublier de faire un stripslashes avant d'utiliser mon chemin !
Que de temps passer a chercher pour une si petite erreur mais je vais tout de meme essayer ta fonction pour voir !
Merci beaucoup.
0
Matzury Messages postés 5 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 25 octobre 2004
25 oct. 2004 à 00:08
Heu tien je vient te tester la fonction basename mais elle ne fonctionne pas dans mon cas car le chemin est un chemin windows ( avec des \ et non des /) donc ca ne semble pas etre bon ...
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
25 oct. 2004 à 00:13
Ok effectivement garde ta solution alors :-)

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
0
Matzury Messages postés 5 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 25 octobre 2004
25 oct. 2004 à 00:13
Bon j'ai trouver d'ou venai mon probleme ce n'etait pas mon stripslashes ! Mais simplement mon afectation d'une case su tableau a ma variable nom de fichier.
c'est $nomfic=$tab[$i-1]; qui ne fonctionne pas !
allez savoir pourquoi ?
0
Matzury Messages postés 5 Date d'inscription dimanche 11 juillet 2004 Statut Membre Dernière intervention 25 octobre 2004
25 oct. 2004 à 00:16
ralala je spam...
Bon excuser moi pour le bordel que j'ai foutu pour une simple inversion de lettre!
Et oui vous lisez en ce moment l'homme le plus bete du monde qui a chercher pendant 2 heure pour trouver simplement qu'il avait inverser 2 lettre dans le nom de sa variable...
Merci encore pour tout !
++
0
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
25 oct. 2004 à 13:43
Non ne t'excuse pas, j'ai reçu 10 nouveaux emails pour ce sujet sinon sa rox.
Tien je vous ajoute encore un email ;)
slmnsnts pense à valider les bonnes réponse pour bien ordonner les visiteurs desereux de savoir la réponse.

Vincent.
0
Rejoignez-nous