Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有特殊字符的PHP strop_Php_Special Characters_Strpos - Fatal编程技术网

带有特殊字符的PHP strop

带有特殊字符的PHP strop,php,special-characters,strpos,Php,Special Characters,Strpos,我尝试使用strpos()检查字符串 这个很好用 if (strpos($a, 'en' ) == true) 但事实并非如此 if (strpos($a, '/en/' ) == true) - Doesn't work 我尝试了很多方法来转义字符或格式化字符串,但似乎我太笨了 问题在于strpos返回位置,如果未找到,则返回FALSE 因此,如果url是/en/something/some,那么您遇到的情况是,en是位置1,任何非零数字都为真 如果执行/en/,则起始位置为0,这是错误的

我尝试使用strpos()检查字符串

这个很好用

if (strpos($a, 'en' ) == true)
但事实并非如此

if (strpos($a, '/en/' ) == true) - Doesn't work

我尝试了很多方法来转义字符或格式化字符串,但似乎我太笨了

问题在于
strpos
返回位置,如果未找到,则返回FALSE

因此,如果url是
/en/something/some
,那么您遇到的情况是,en是位置1,任何非零数字都为真

如果执行
/en/
,则起始位置为0,这是错误的

您需要在最后检查
==
,或者更准确地检查
==示例

<?php

$a= "/en/blo";

if (strpos($a, '/en/' ) !== false){
    echo "TRUE";
} else {
    echo "FALSE";
}

$\u服务器['REQUEST\u URI']
中有什么?它是如何工作的?if语句未通过?它在“”之后包含主页的字符串。它在..之后包含主页的字符串。。我知道!但是您的
$\u服务器['REQUEST\u URI']
strpos()==true
没有意义,因为它返回一个索引:请参阅;您可以使用
!==FALSE
相反,就是这样。工作得很好。无法告诉你我是多么感谢你的解决方案和解释。像这样的url如何
/jp/home/en/content
,它也会是真的。@MochamadArifin是的,据我所知,他只是在寻找
\en'。唯一的问题是在开始时,因为0=false。如果您想检查前4个是否为
/en/`我只需进行substr和验证,或者直接进行检查,确保
/en/
的strpos为0。@LukasHwm很乐意提供帮助。不确定你是否可以,但接受答案总是很感激的!
<?php

$a= "/en/blo";

if (strpos($a, '/en/' ) !== false){
    echo "TRUE";
} else {
    echo "FALSE";
}