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

WRInaute occasionnel
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?
 
WRInaute impliqué
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;
 
WRInaute impliqué
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"; }
 
G
Grantome
Guest
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
 
Nouveau WRInaute
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
?>
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut