Обрезать строку, пока не появится конкретный символ

Я хочу обрезать строку и удалить все перед определенным символом, потому что я использую API, который дает мне ненужные данные в обратном вызове, которые я хочу удалить.

Обратный звонок выглядит так:

{"someVar":true,"anotherVar":false,"items":[  {"id":123456, [...] }

И я хочу только код после [ , так как я могу разделить строку, как это?
Спасибо!

0

Решение

Это JSON, так что вы можете просто расшифровать его:

$data = json_decode($string);

Если вы действительно хотите обрезать до определенного персонажа, вы можете просто найти положение персонажа, а затем отрезать все перед ним:

if (($i = strpos($string, '[')) !== false) {
$string = substr($string, $i + 1);
}
1

Другие решения

Вы можете использовать различные функции. Например:

$someVar = explode('[',$string,2);
$wantedData = $someVar[1];

Или если вы хотите только данные между [ а также ] затем используйте:

$pattern = '~\[([^\]])\]~Ui';
if (preg_match($pattern,$inputString,$matches) {
$wantedData = $matches[1];
}

Редактировать:
Это то, что вы используете, если вы хотите извлечь одну строку из другой. Но, как заметил @Dagon, это json, и вы можете использовать другую функцию для его анализа. Я все равно оставлю выше, потому что это более общий вопрос извлечения строки из другого.

0