эффективная замена конца строки - PullRequest
0 голосов
/ 21 августа 2011

Я хотел бы посмотреть, есть ли способ сделать это без preg_replace, только строковые функции.

Я использую это

$str = "-41d3vUYHtK3D-GI3QXiVhvfR-zNooU7U_--2697";
preg_replace("/\-\d+$/i","",$str) 

, чтобы удалить все, что следуети в том числе последний "тире"

Ответы [ 2 ]

3 голосов
/ 21 августа 2011

Если не требуется, чтобы последние символы были цифрами, вы можете использовать substr [документы] и strrpos [документы] :

$str = substr($str, 0, strrpos($str, '-'));

Или в PHP 5.3.0 strstr [документы] :

$str = strstr($str, '-', true);

Если, с другой стороны, вы хотите удалить последнюю черту и символы только , если следующие символыцифры, тогда использование регулярных выражений было бы проще.

2 голосов
/ 21 августа 2011
$str = "-41d3vUYHtK3D-GI3QXiVhvfR-zNooU7U_--2697";

for($i=strlen($str)-1;$i>=0;$i--){
    if($str[$i] == '-'){
        $result = substr($str,0,$i);
        break;
    }

}
echo $result;

Возвращает -41d3vUYHtK3D-GI3QXiVhvfR-zNooU7U_-

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...