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 :

substr_replace ne modifie pas ma chaine


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut substr_replace ne modifie pas ma chaine
    Bonsoir,

    J'essaie d'utiliser substr_replace.

    J'ai donc écris ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    substr_replace($LeMotSelectionne['Avancement_Mot'],$_POST['lettre'],$pos,0);
    Le problème est que ma chaine ne change pas.

    Je suis sûr de la valeur de $_POST['lettre'], de $pos car je les ai testés.

    Voyez-vous quelque chose qui ne va pas ?

    Le retour est la chaine originale, non modifiée.

    Voici mon code :

    Code : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    <?php
     
    $conn = mysql_connect("localhost","root","mdp"); 
    $db=mysql_select_db("EICE", $conn);
     
    $sql = "SELECT * FROM mots WHERE ID = " .$_POST['nombre_lettre']." ";
    //echo $sql;
    $req_sql = mysql_query($sql);
     
    $LeMotSelectionne = mysql_fetch_array($req_sql);
     
     
    //strpos recherche la première occurence d'une lettre ou d'un mot dans une chaine de caractères
    $pos = strpos($LeMotSelectionne['Mot'],$_POST['lettre']);
     
    if($pos != "")
    {
    	//substr_replace permet de remplacer un segment d'une chaine (une lettre dans notre cas) par la chaine de remplacement	
    	//Paramètre 1 : la chaine en question, paramètre 2 : La lettre qui va remplacer, paramètre 3 : la position de départ, paramètre 4 : la longueur (ici 0 qui permet de changer le caractère à la position $pos) voir doc => http://be2.php.net/manual/fr/function.substr-replace.php 
    	substr_replace($LeMotSelectionne['Avancement_Mot'],$_POST['lettre'],$pos,0);
    	//echo $_POST['lettre'];
    	//echo $pos;
    	echo $LeMotSelectionne['Avancement_Mot'];
    }
     
    //echo $pos;
     
     
    ?>
    Merci d'avance.

    beegees

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 724
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 724
    Par défaut
    regarde bien la documentation de la fonction, elle ne s'utilise pas comme ça :
    http://php.net/substr_replace

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par mathieu Voir le message
    regarde bien la documentation de la fonction, elle ne s'utilise pas comme ça :
    http://php.net/substr_replace
    Merci pour ta réponse.

    Finalement trouvé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $chaineTraitee = substr_replace($LeMotSelectionne['Avancement_Mot'],$_POST['lettre'],$pos,0);
    echo $chaineTraitee;
    Merci encore.

    beegees

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.Net 2.0] Pourquoi ma DataTable ne se modifie pas malgré l'Update ?
    Par sandra69 dans le forum Accès aux données
    Réponses: 8
    Dernier message: 21/08/2007, 22h41
  2. DBEdit ne modifiant pas la BDD
    Par andreditdd dans le forum Bases de données
    Réponses: 11
    Dernier message: 13/03/2007, 13h10
  3. Réponses: 4
    Dernier message: 08/03/2007, 21h00
  4. Trouver fichier ne contenant pas une chaine
    Par guitalca dans le forum Linux
    Réponses: 6
    Dernier message: 24/01/2006, 10h24
  5. Liste modifiable : longueur de chaine.
    Par pifou02 dans le forum Access
    Réponses: 8
    Dernier message: 09/01/2006, 15h47

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