Вырезать строку перед символом с помощью php - PullRequest
10 голосов
/ 23 апреля 2009

Как мне обрезать строку перед знаком '(' с помощью php

Например: $ a = "abc dec g (gold)";

Как я могу вырезать строку стать только "abc dec g" ??

Я пытался использовать этот strstr ($ a, '(', true), но отображается сообщение об ошибке.

Ответы [ 4 ]

26 голосов
/ 23 апреля 2009

Вы можете сделать это, используя explode:

list($what_you_want,) = explode('(', $str, 2);

Или вы также можете сделать это, используя substr и strpos:

$what_you_want = substr($str, 0, strpos($str, '('));

Причина, по которой вы получили ошибку при использовании strstr, заключается в том, что последний аргумент недоступен, если у вас не установлен PHP 5.3.0 или более поздней версии.

5 голосов
/ 23 апреля 2009
$a=substr($a, 0, strpos($a, '('));
2 голосов
/ 29 января 2014

Как насчет strstr :

$topic = strstr('Some topic :: part to exclude', '::', TRUE);

тогда

$topic = Некоторая тема

Редактировать: правильно ... 5.3+

1 голос
/ 13 января 2013

Использование этого фрагмента кода действительно хорошее решение:

$what_you_want = substr($str, 0, strpos($str, '('));

Тем не менее, я хотел бы указать на тот факт, что он обрежет вашу строку при первом появлении "(". Если вы хотите обрезать ее при ПОСЛЕДНЕМ вхождении "(", вы должны использовать

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

Я обнаружил, что это часто встречается, например, при удалении html-содержимого (из-за вложенных тегов).

Ура, Joan

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