[php] enlever une partie de chaine d'une chaine complete

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par silverbeach, 12 Avril 2006.

  1. silverbeach
    silverbeach WRInaute occasionnel
    Inscrit:
    20 Juillet 2005
    Messages:
    331
    J'aime reçus:
    0
    Bonjour,

    je dois enlever une partie de chaine d'une chaine complete:

    La chaine se compose d'une serie de mots puis du mot "dans" et ensuite une autre serie de mots : " [partie1]dans[partie2] "

    je dois enlever la partie2 ainsi que le mot "dans". Mais dans la partie1 il peut y avoir le mot "dans". Donc il faut enlever tous les mots a partir du dernier "dans"

    je n'arrive pas a trouver la position du dernier "dans". je ne vois pas quels fonctions utilisée.
    J'ai essayé strripos en faisant une inversion de la chaine pour trouver la position du dernier "dans" mais il faut php5 :?

    quelqu'un a t-il une idée?
     
  2. rikew
    rikew WRInaute impliqué
    Inscrit:
    19 Décembre 2002
    Messages:
    783
    J'aime reçus:
    0
  3. silverbeach
    silverbeach WRInaute occasionnel
    Inscrit:
    20 Juillet 2005
    Messages:
    331
    J'aime reçus:
    0
    oui j'ai vu cette fonction mais c'est pour un seul caractère
     
  4. rikew
    rikew WRInaute impliqué
    Inscrit:
    19 Décembre 2002
    Messages:
    783
    J'aime reçus:
    0
    Code:
    $string = "Il a un machin dans la boite dans la voiture";
    $string = strrev($string);
    $string = strrev(substr($string,strpos($string,"snad")+5));
    echo $string;
    
     
  5. rikew
    rikew WRInaute impliqué
    Inscrit:
    19 Décembre 2002
    Messages:
    783
    J'aime reçus:
    0
    pour le fun

    Code:
    $string = "Il a un machin dans la boite dans la voiture";
    $tab = explode("dans",$string);
    unset($tab[count($tab)-1]);
    $sep = "";
    foreach ($tab as $value) { echo $sep.$value; $sep = "dans"; }
    
     
  6. silverbeach
    silverbeach WRInaute occasionnel
    Inscrit:
    20 Juillet 2005
    Messages:
    331
    J'aime reçus:
    0
    j'ai essayé ta 1ere solution, ca fonctionne et j'ai réussi ce que je voulais faire

    Merci beaucoups
     
  7. Grantome
    Grantome WRInaute accro
    Inscrit:
    16 Janvier 2004
    Messages:
    2 883
    J'aime reçus:
    0
    Et si tu as un "dans" dans ta 2nd partie ?

    :)
     
  8. silverbeach
    silverbeach WRInaute occasionnel
    Inscrit:
    20 Juillet 2005
    Messages:
    331
    J'aime reçus:
    0
    ca n'arrivera pas.

    Et heureusement car je ne sais pas comment je ferais
     
  9. Grantome
    Grantome WRInaute accro
    Inscrit:
    16 Janvier 2004
    Messages:
    2 883
    J'aime reçus:
    0
    Bah facile.

    - Avant d'afficher, tu mets "dns" dans la variable à la place de ton "dans" du milieu.
    - Tu vires les "dans"
    - Tu changes "dns" en "dans"
    - Tu affiches
     
  10. nighma
    nighma Nouveau WRInaute
    Inscrit:
    6 Février 2007
    Messages:
    4
    J'aime reçus:
    0
    Strstr ne peut pas répondre à ta question ?

    Code:
    <?php
    $email  = 'name@example.com';
    $domain = strstr($email, '@');
    echo $domain; // Affiche : @example.com
    
    $user = strstr($email, '@', true); // Depuis PHP 5.3.0
    echo $user; // Affiche : name
    ?>