2012-02-28 1 views
1

Voici un exemple de la façon dont je me sers strstr sur mon localhost sur PHP 5.3.10fonction strstr() PHP remplacement

<?php 
$string = '25_testing'; 
$test = strstr($string, '_', true); // As of PHP 5.3.0 
echo $test; // prints 25 
?> 

Eh bien, je téléchargé mes fichiers sur mon serveur d'hébergement, mais ils sont en cours d'exécution de PHP 5.2 donc la fonction strstr($string, '_', true) ne fonctionne pas. Y a-t-il une alternative que je peux utiliser pour obtenir les mêmes résultats?

+0

Odd, cette fonction a été en PHP depuis v4. Il ne devrait pas y avoir de différence opérationnelle. Comment ça "ne fonctionne pas" pour vous? Ne rien récupérer? Quelque chose d'autre que 25? –

+0

Je reçois: PHP Attention: nombre de paramètres incorrect pour strstr(). Donc, je pourrais sortir le vrai paramètre, mais cela me donnerait un résultat différent, j'ai besoin de là pour saisir les caractères avant le trait de soulignement – Drew

+0

Ah. doh. C'est juste là dans les docs. le 3ème param a été ajouté en PHP 5.3. Je vais me glisser dans un coin et prendre un café et me réveiller. –

Répondre

2

Essayez cette ...

D'abord, vous retourner la chaîne après "_" (y compris lui-même), puis le remplacer par rien. Pas très beau mais il fonctionne;)

<?php 
    $string = "25_testing"; 
    echo str_replace(stristr($string,"_"),"",$string); 
?> 

ou

<?php 
    $string = "25_testing"; 
    echo str_replace(strstr($string,"_"),"",$string); 
?> 
0

Supprimez le true et coupez la longueur de l'aiguille à la fin du résultat.

1

Vous pouvez utiliser la combinaison de strpos et substr:

<?php 
$string = '25_testing'; 
$test = substr($string, 0, strpos('_')); //maybe check if strpos does not return FALSE 
echo $test; 
?>