Как извлечь подстроку из строки в PHP до тех пор, пока она не достигнет определенного символа?

У меня есть часть приложения PHP, которое оценивает длинный ввод строки пользователем и извлекает число, которое всегда начинает 20 символов в строку, которую пользователь предоставляет.

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

Как я могу использовать функцию подстроки PHP для извлечения подстроки, начиная с определенной точки, и заканчивая, когда она попадает в двойную кавычку?

Заранее спасибо.

Вы можете использовать strpos для получения первой позиции " с позиции 20 на:

 $pos = strpos($str, '"', 20); 

Затем эту позицию можно использовать для получения подстроки:

 if ($pos !== false) { // " found after position 20 $substr = substr($str, 20, $pos-20-1); } 

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

 $nLast = strpos($userString , '"'); substr($userString, 0, $nLast); 
 <? $str = substring($input, 20, strpos($input, '"') - 20); echo $str; ?> 

Или что-то в этом роде.

найти первое вхождение двойной кавычки после 20 символов, вычесть 19 – это дает вам длину требуемой подстроки:

 $dq = strpos($string,'"',19); //19 is index of 20th char $desired_string = substr($string,19,$dq-19); 

Перейдем только к ответам Gumbo, если вам нужна помощь в подстроке:

 $pos = strpos($str, '"', 20); $substring = substr($str, 20, $pos);