У меня есть часть приложения 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);