2012-02-28 4 views
1

Вот пример того, как я использую strstr на моем локальном хосте на PHP 5.3.10PHP strstr() замена функции

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

Ну, я загрузил мои файлы на хостинг-сервере, но они работают от PHP 5.2, поэтому функция strstr($string, '_', true) не работает. Есть ли альтернатива, которую я могу использовать, чтобы получить те же результаты?

+0

Странно, что функция была в PHP начиная с v4. Не должно быть никаких операционных различий. Как это «не работает» для вас? Не вернешься? Что-то кроме 25? –

+0

Я получаю: PHP Предупреждение: неправильный параметр count для strstr(). Поэтому я мог бы вынести истинный параметр, но это дало бы мне другой результат, мне нужно, чтобы там, чтобы захватить символы перед подчеркиванием – Drew

+0

А. DOH. Это прямо в документах. в PHP 5.3 был добавлен третий параметр. Я просто уйду в угол и выпью кофе и проснусь. –

ответ

2

Попробуйте это ...

Сначала вы вернуть строку после того, как "_" (в том числе и себя), а затем заменить его ничем. Не очень приятно, но это работает;)

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

или

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

Снимите true и отрежьте длину иглы с конца результата.

1

Вы можете использовать комбинацию из strpos и substr:

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