繁体   English   中英

strpos与字符串不匹配:字符集问题?

[英]strpos doesn't match a string : characterset issue?

一个strpos有效取决于所解析的字符串源(手动输入或由第三方机制提供):

index.php?option=com_ars&view=release&id=8

strpos指令是

$debug = "found '?' : " . ((strpos($url, '?') === false) ? 'false' : 'true');

strpos始终返回false。

我尝试了mb_strpos ,尝试了各种en / de-coding都没有用( utf8_encodeutf8_decode ,甚至使用sprintficonv ,...)。

我最好的提示是,当字符串由第三方机制提供时, convert_uudecode给出错误

Warning: convert_uudecode(): The given parameter is not a valid uuencoded string

而对于手动输入,它将返回8AX9 | 3“。

我根本不是php专家,但这使我想到了characterset问题。

关于我应该如何进行strpos的任何想法?

首先,我看到一个括号“(”太多了。(您有3个开头的“(”和2个结尾的“)”)。
第二,如果您希望变量$ ok为find的“?”,则为true。 符号,那么您应该使用!==进行测试

$ok = strpos($url, '?') !== false;

现在,如果带引号“?”,则$ ok将为true。 被发现。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM