2011-10-18 4 views
55

je dois supprimer tous les caractères de toute chaîne avant l'apparition de cette chaîne dans la:PHP supprimer tous les caractères avant chaîne spécifique

"www/audio" 

Je ne sais pas comment je peux le faire.

+0

Vous trouverez peut-être [ 's ($ str) -> afterFirst ('www/audio)'] (https://github.com/delight-im/PHP-Str/ blob/8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php # L435) ou ['s ($ str) -> afterLast ('www/audio')'] (https://github.com/delight-im/PHP-Str/blob /8fd0c608d5496d43adaa899642c1cce047e076dc/src/Str.php#L445) utile, comme dans [cette bibliothèque autonome] (https://github.com/delight-im/PHP-Str). – caw

Répondre

123

Pour ce faire, vous pouvez utiliser strstr.

echo strstr($str, 'www/audio'); 
+18

Note rapide: vous pouvez utiliser 'strstr()' pour retourner la partie de la chaîne qui vient ** avant ** son argument en appelant 'echo strstr ($ str, 'www/audio', true);' – cfx

0

Vous pouvez utiliser substring et strpos pour atteindre cet objectif.

Vous pouvez également utiliser un modèle regular expression pour correspondre uniquement à ce que vous voulez. Votre kilométrage peut varier selon laquelle de ces approches a plus de sens.

14

Considérant

$string="We have www/audio path where the audio files are stored"; //Considering the string like this 

Soit vous pouvez utiliser

strstr($string, 'www/audio'); 

Ou

$expStr=explode("www/audio",$string); 
$resultString="www/audio".$expStr[1]; 
+0

chaîne les fonctions sont généralement plus rapides que les fonctions du tableau –

+1

L'explosion est en fait une meilleure réponse, car la question portait sur le fait de supprimer le texte avant la chaîne. –

0

J'utilise cette fonction

function strright($str, $separator) { 
    if (intval($separator)) { 
     return substr($str, -$separator); 
    } elseif ($separator === 0) { 
     return $str; 
    } else { 
     $strpos = strpos($str, $separator); 

     if ($strpos === false) { 
      return $str; 
     } else { 
      return substr($str, -$strpos + 1); 
     } 
    } 
} 

function strleft($str, $separator) { 
    if (intval($separator)) { 
     return substr($str, 0, $separator); 
    } elseif ($separator === 0) { 
     return $str; 
    } else { 
     $strpos = strpos($str, $separator); 

     if ($strpos === false) { 
      return $str; 
     } else { 
      return substr($str, 0, $strpos); 
     } 
    } 
} 
+5

Trop d'autres, si pour être considéré comme bon: p –

Questions connexes