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 :

$_POST et str_replace


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Points : 11
    Points
    11
    Par défaut $_POST et str_replace
    J'ai un problème de comparaison de chaînes de caratères entre un texte et le contenu d'un $_POST[].

    Je récupère une requete en $_POST et je la compare dans un texte avec str_replace (pour mettre les mots de la requete en gras dans un texte)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    public function formatText($text, $keywords) {
    		$text = htmlspecialchars_decode($text);
    		$text = str_ireplace($keywords, '<b>'.$keywords.'</b>', $text);
    		return $text;
    	}
    Quand il y a un seul mot clé, cela fonctionne, mais pour 2 mots clés, le str_ireplace ne fonctionne plus. Pourtant un echo de keywords ou de $_POST["keywords"] m'affiche bien les 2 mots clés compris dans le texte.

    Pour exemple si je rentre "Ben harper" dans un formulaire et que je je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $text = str_ireplace($_POST["keywords"], '<b>'.$_POST["keywords"].'</b>', $text);
    le texte ne subit pas de modification alors qu'il contient bien Ben Harper.
    Bizzarre ???

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    $_POST["keywords"] est-il un tableau ??

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Non, $_POST["keywords"] ne contient qu'une seule valeur. Pour reprendre l'exemple ci-dessus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_POST["keywords"];
    affiche bien Ben Harper

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    hmmm y'a un soucis quelque part... vérifie sur PHP Manual : str_ireplace()

    je suppose que $text est ton texte de base et $keywords les mots-clés à remplacer. Il faut donc que $keywords soit un tableau !

    EDIT : si tu veux remplacer plusieurs mots clés evidemment ^^


    EDIT 2 : bon allez, j'me fais chier en cours donc voilà, j't'ai modifié le code pour qu'il prenne en compte un tableau :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?php
    function formatText($text, $keywords) {
    		$text = htmlspecialchars($text);
     
    		foreach( $keywords AS $value ) {
    			$text = str_replace($value, '<b>'.$value.'</b>', $text);
    		}
    		return $text;
    	}	
     
     
    $text = "je suis un pgm et ben harper est un noobie. sdfsq harper qdsfqsd f q ben qsdfsqdf.";
    $keywords = array("ben", "harper");
     
    echo formatText($text, $keywords);
     
     
    ?>

Discussions similaires

  1. str_replace avec $_POST
    Par freeman43 dans le forum Langage
    Réponses: 11
    Dernier message: 08/06/2012, 20h38
  2. Je veux le premier élément de $_POST
    Par laurent_ifips dans le forum Langage
    Réponses: 7
    Dernier message: 23/11/2005, 12h21
  3. Pb de récupération de $_POST/GET
    Par Herode dans le forum Langage
    Réponses: 11
    Dernier message: 07/11/2005, 16h21
  4. Récupération de valeurs de Formulaire via $_POST
    Par GarGamel55 dans le forum Langage
    Réponses: 5
    Dernier message: 10/10/2005, 08h38
  5. [RegEx] str_replace qui veut pas replacer
    Par lamoufle dans le forum Langage
    Réponses: 5
    Dernier message: 13/09/2005, 12h37

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