How to extract a substring from a string in PHP un

2019-01-20 10:37发布

问题:

I have part of a PHP application which assess a long string input by the user, and extracts a number which always begins 20 characters into the string the user supplies.

The only problem is that I don't know how long the number for each user will be, all I do know is the end of the number is always followed by a double quote (").

How can I use the PHP substring function to extract a substring starting form a specific point, and ending when it hits a double quote?

Thanks in advance.

回答1:

You can use strpos to get the first position of " from the position 20 on:

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

That position can then be used to get the substring:

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

The calculation for the third parameter is necessary as substr expects the length of the substring and not the end position. Also note that substr returns false if needle cannot be found in haystack.



回答2:

$nLast = strpos($userString , '"');
substr($userString, 0, $nLast);


回答3:

<?

$str = substring($input, 20, strpos($input, '"') - 20);
echo $str;

?>

Or something like that etc.



回答4:

find first occurrence of double quote after 20 chars, substract 19 - that gives you length of desired substring:

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


回答5:

Going to just add on to Gumbo's answer in case you need help with the substring function:

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


标签: php substring