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

silverbeach
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 333
Inscription: 20 Juil 2005

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

Message le Mer Avr 12, 2006 18:01

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?

rikew
WRInaute impliqué
WRInaute impliqué
 
Messages: 735
Inscription: 19 Déc 2002

Message le Mer Avr 12, 2006 18:10


silverbeach
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 333
Inscription: 20 Juil 2005

Message le Mer Avr 12, 2006 18:11

oui j'ai vu cette fonction mais c'est pour un seul caractère

rikew
WRInaute impliqué
WRInaute impliqué
 
Messages: 735
Inscription: 19 Déc 2002

Message le Mer Avr 12, 2006 18:33

Code: Tout sélectionner
$string = "Il a un machin dans la boite dans la voiture";
$string = strrev($string);
$string = strrev(substr($string,strpos($string,"snad")+5));
echo $string;

rikew
WRInaute impliqué
WRInaute impliqué
 
Messages: 735
Inscription: 19 Déc 2002

Message le Mer Avr 12, 2006 18:45

pour le fun

Code: Tout sélectionner
$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"; }

silverbeach
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 333
Inscription: 20 Juil 2005

Message le Mer Avr 12, 2006 18:58

j'ai essayé ta 1ere solution, ca fonctionne et j'ai réussi ce que je voulais faire

Merci beaucoups

Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Inscription: 16 Jan 2004

Message le Mer Avr 12, 2006 19:29

Et si tu as un "dans" dans ta 2nd partie ?

:-)

silverbeach
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 333
Inscription: 20 Juil 2005

Message le Mer Avr 12, 2006 20:25

ca n'arrivera pas.

Et heureusement car je ne sais pas comment je ferais

Grantome
WRInaute accro
WRInaute accro
 
Messages: 2899
Inscription: 16 Jan 2004

Message le Mer Avr 12, 2006 22:50

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

nighma
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 4
Inscription: 6 Fév 2007

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

Message le Ven Nov 13, 2009 12:14

Strstr ne peut pas répondre à ta question ?

Code: Tout sélectionner
<?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
?>


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité