【发布时间】:2011-01-12 21:08:25
【问题描述】:
我有一个 PHP 应用程序的一部分,它评估用户输入的长字符串,并在用户提供的字符串中提取一个总是以 20 个字符开头的数字。
唯一的问题是我不知道每个用户的号码会有多长,我只知道号码的末尾总是跟一个双引号 (")。
如何使用 PHP 子字符串函数提取从特定点开始到双引号结束的子字符串?
提前致谢。
【问题讨论】:
我有一个 PHP 应用程序的一部分,它评估用户输入的长字符串,并在用户提供的字符串中提取一个总是以 20 个字符开头的数字。
唯一的问题是我不知道每个用户的号码会有多长,我只知道号码的末尾总是跟一个双引号 (")。
如何使用 PHP 子字符串函数提取从特定点开始到双引号结束的子字符串?
提前致谢。
【问题讨论】:
$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);
【讨论】: