PHP rtrim и ltrim обрезают больше, чем предполагалось

Я хочу удалить Search - со страницы на моем сайте. Вот пример моего кода ниже:

Входные данные :

 $search = "Search - echelon"; $trim = "Search - "; $result = ltrim($search,$trim); echo $result; 

Выход:

lon

Выход желаний:

echelon

Как я могу это сделать, и почему в моем примере выше обрезается литий? Благодаря!

Related of "PHP rtrim и ltrim обрезают больше, чем предполагалось"

RTM . Второй аргумент рассматривается как набор символов для обрезки.

В этом случае:

 S - in the list, trim it e - in the list, trim it a - in the list, trim it r - in the list, trim it c - in the list, trim it h - in the list, trim it _ - (space) in the list, trim it - - in the list, trim it _ - (space) in the list, trim it e - in the list, trim it c - in the list, trim it h - in the list, trim it e - in the list, trim it l - NOT in the list, stop! lon is left 

Вы имели в виду это?

 $result = substr($search,strlen($trim)); 

ltrim ( string $str [, string $character_mask ] ) – разделите пробелы (или другие символы) с начала строки. character_mask – символы, которые вы хотите удалить

Как насчет str_replace ,

 $result = str_replace($trim,"",$search); 

от PHP.net : ltrim – пропустить пробел (или другие символы) с начала строки

Таким образом, он не обрезает строку, она обрезает любой из символов, которые вы ввели …

Я бы пошел с ответом @ krishR

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

 $trimmed = preg_replace('/^Search - /', '', $search);