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 :

problème fonction str_replace [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut problème fonction str_replace
    Bonjour,

    J'ai un problème avec la fonction str_replace qui ne comptabilise pas mes espaces, je m'explique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        	$search1 = htmlspecialchars('<div style="border:');
        	$search2 = htmlspecialchars('</h2> </div>');
     
        	$replace1 = htmlspecialchars('</div> <div style="border:');
        	$replace2 = htmlspecialchars('</h2> </div> <div>');
     
        	$search = [$search1,$search2];
        	$replace = [$replace1,$replace2];
     
        	$form = str_replace($search,$replace,$form);
    le $search1 est bien remplacer par $replace1, mais $search2 n'est pas trouver mais pourtant bien présent dans mon $form(qui est une chaine beaucoup trop longue pour que je la copie ici et qui contient du texte et des balises html)

    Meric d'avance!

  2. #2
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Tu es sûr qu'il n'y a qu'n espace entre les deux balises ?
    Pas de saut de ligne par exemple ?

    parce que ceci marche très bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $html = '<form><div><h2></h2> </div></form>';
    $str = '</h2> </div>';
    $replace = 'foo';
     
    $result = str_replace($str, $replace, $html);
     
    var_dump($result);

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    J'ai essayé en insérant deux espace ou un saut de ligne mais non ca a pas l'air d'être ca, je colle le morceaux de phrase rebelle:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div style="border: none; border-bottom: solid #0070C0 1.0pt; padding: 0cm 0cm 1.0pt 0cm;"> <h2>La page saisie simplifiee</h2> </div>
    (je précise que ma variable string est générer par l'éditeur HTML Tinymce, d'où le fait de faire une div juste pour une bordure...)

  4. #4
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Je ne vois toujours pas le problème...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $html = '<div style="border: none; border-bottom: solid #0070C0 1.0pt; padding: 0cm 0cm 1.0pt 0cm;"> <h2>La page saisie simplifiee</h2> </div>';
    $str = '</h2> </div>';
    $replace = 'FOOBAR';
     
    $result = str_replace($str, $replace, $html);
     
    var_dump($result);

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    je dois avouer que moi non plus je comprends pas, ton code fonctionne parfaitement....mais mon code ne passe pas...

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 12
    Par défaut
    après plusieurs essaies, je pense que ca vient de l'espace entre </h2> et </div>, j'ai essayé de remplacer l'espace par du code html(&nbsp; , &#160 mais en vain, quelqu'un aurait une idée?

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

Discussions similaires

  1. Problème fonction strtr ou str_replace
    Par chris911 dans le forum Langage
    Réponses: 10
    Dernier message: 14/01/2011, 17h55
  2. problème fonction str_replace
    Par Sh4dow49 dans le forum Langage
    Réponses: 5
    Dernier message: 21/07/2008, 13h23
  3. Problème fonction PL/SQL
    Par SSJ17Vegeta dans le forum PL/SQL
    Réponses: 2
    Dernier message: 29/10/2005, 21h14
  4. Problème fonction et trigger sous 7.2
    Par anoukhan dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/06/2005, 22h53
  5. Réponses: 2
    Dernier message: 20/08/2004, 17h10

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