PHP: лучший способ обрезать подстроку из строки - PullRequest
10 голосов
/ 09 января 2011

Хотите обработать набор строк и обрезать некоторые конечные "myEnding" от конца каждой строки , если она существует .

Какой самый простой способ сделать это?Я знаю, что с regexp возможно все, но, таким образом, это кажется простой задачей, и мне интересно, существует ли более простой инструмент для этого.

Спасибо

Гиди

Ответы [ 3 ]

11 голосов
/ 09 января 2011

я могу пойти с preg_replace на этом.

$output = preg_replace('/myEnding$/s', '', $input);
7 голосов
/ 09 января 2011

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

$s = "foobarmyEnding";
$toRemove = "myEnding";

$len = strlen($toRemove);
if (strcmp(substr($s, -$len, $len), $toRemove) === 0)
{
    $s = substr($s, 0, -$len);
}

ideone

0 голосов
/ 19 июля 2012

rtrim http://php.net/manual/en/function.rtrim.php

$str = "foobarmyEnding";
$str = rtrim($str, 'myEnding');
// str == "foobar"

Итрим - это то же самое предложение для начала строки http://php.net/manual/en/function.ltrim.php

Вы также можете использовать str_replace для замены поискового термина пустой строкой, но она медленнее, чем rtrim / ltrim, если вам нужно изменить начало или конец строки

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