In PHP, strpos() fails to find double quote ('"') in string
Both this:
echo 'Tok: '.$tok.' Strpos: '.strpos($tok, "\"").' length: '.strlen($tok).'<br>';
And this:
echo 'Tok: '.$tok.' Strpos: '.strpos($tok, '"').' length: '.strlen($tok).'<br>';
Result in the following output:
Tok: "fresh Strpos: length: 11
开发者_运维知识库
Strpos is failing completely to find the double quote, it returns false (I checked with strpos() === false). Can someone tell me what's going on here? I can find no documentation suggesting that strpos can't handle double quotes, why isn't it finding it? I am at my wits end.
Are you 1000% sure that the double quote in $tok
is actually a literal "
and not a HTML entity? Can you check your HTML code?
Using php at the command line, your code works for me.
I noticed you didn't specify the content of $tok. I also noticed it lookes like you're outputting to a browser. Are you sure that the html
"
isn't being used instead of the actual quote character?
strpos($tok, '"') is equaling === 0 in your case since the very first element in $tok is a double-quote ("). Then when you print out 0 you get nothing because it is a boolean FALSE.
This function may return Boolean FALSE, but may also return a non-Boolean value which evaluates to FALSE, such as 0 or "". Please read the section on Booleans for more information. Use the === operator for testing the return value of this function - http://us3.php.net/strpos
精彩评论