IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Explode() probleme d'espace


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de pierre987321
    Inscrit en
    Août 2005
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 139
    Par défaut Explode() probleme d'espace
    bonjour suite a la réalisation d'un petit script fait par moi meme, j'ai un petit probleme.

    voici déjà mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $informations = trim(@$_GET['informations']);
    $informations = str_replace(", ", " ", $informations); 
    $informations = str_replace(",", " ", $informations); 
    $informations = str_replace("; ", " ", $informations);
    $informations = str_replace(";", " ", $informations);
    $informations = str_replace("+", " ", $informations); 
    $informations = str_replace("\"", " ", $informations);
    $informations = str_replace(":", " ", $informations);
    $tab=explode(" " , $informations);
    c'est pour un moteur de recherche, le probleme est que quand je recherche des ville qui contient plusieur mots, cela me le concidere comme 2 ou plus.

    exemple :
    "paris", ok ça marche.
    "saint etienne", me donne 2 ville, "saint" et "etienne".

    Avez vous une petit idée ou solution ?

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    C'est normal, car c'est le principe que tu as adopté (le explode), c'est à dire de séparer chaque mot en te basant sur la présence d'un espace.

    Il faudrait peut être te baser sur un autre caractère, qui lui serait (potentiellement) impossible d'être présent, ou/et saisie par un utilisateur.

    Un caractère du genre | ou # ou autre ~ par exemple.
    Le explode() séparerait chaque mot à la présence de ce caractère, et non l'espace.
    Mais ça peut être l'impasse malgré tout, car si tu accepte une saisie comme ceci : "paris saint etienne", il y a strictement aucun élément qui spécifie quels sont le les ou les mots à grouper.
    Faut il considérer ceci comme 3 mots ? -> paris ET saint ET etienne
    2 mots ? -> paris saint ET etienne OU -> paris ET saint etienne


    Compliqué les moteurs de recherche.
    A mon sens, une solution serait de séparer chaque mots comme tu le fait actuellement, donc en te basant sur la présence d'un espace, mais avant de l'appliquer, pourquoi pas adopter le principe de Google, c'est à dire de prendre en compte un élément supplémentaire : ET

    En somme, si un utilisateur saisie "saint etienne", et bien tant pis, la recherche se fera sur les 2 mots : "saint" ET "etienne".
    Par contre, si l'utilisateur saisie : "saint et etienne", la présence du " et " spécifie le groupement des 2 mot.

    Donc (en gros), il y aurait une alternative :
    SI (présence d'un " et ") alors pas de découpage
    SINON on découpe les mots.
    (au lieu d'un et, ça peu être une virgule aussi)
    Mais le et t'emmène droit vers une autre possibilité : le ou
    Comme offrir une recherche :
    1/ paris ET saint etienne
    2/ paris OU saint etienne
    Ce qui débouche sur 2 résultats (potentiellement) différents.

    Il faudra que les utilisateurs soient au courant de cette fonctionnalité (mettre un ET ou une virgule pour spécifier le groupement des mots)
    C'est pas aussi simple que ça certes, mais je ne vois pas d'autre solutions.

Discussions similaires

  1. probleme d'espace non voulu entre 2 bloc
    Par piff62 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 12/04/2005, 17h07
  2. probleme d'espace qui fausse une jointure
    Par Nadaa dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/08/2004, 12h52
  3. Réponses: 2
    Dernier message: 24/06/2004, 10h13
  4. Probleme d'espace disque (= 0)
    Par infotron dans le forum Administration système
    Réponses: 12
    Dernier message: 01/06/2004, 19h29
  5. probleme d'espace
    Par hawax dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/12/2003, 19h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo