[英]strpos function doesn't detect instance if it's first word in a string
需要用来自url参数的值替换字符串。 为此创建了一个{{hkw}}“令牌”。 如果未将替换文本用作字符串的第一件事,则效果很好。 但是,如果我从一开始就使用它-不会发生任何事情。 例如:如果我使用“替换{{hkw}}”,一切将被正确替换。 如果我使用“ {{hkw}}应该被替换”,则什么也不会发生,并且{{hkw}}仍然存在。
一开始我尝试了
if (strpos($kwttl,'{{hkw}}') !== false)
谷歌搜索后,我发现以下应该工作
if (strpos($kwttl,'{{hkw}}') === true)
但事实并非如此。 这是我的完整代码。
$fullurl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$kwttl = get_the_title();
if (strpos($fullurl,'hkw') === true) {
$hkwsub = $_GET['hkw'];
if (strpos($hkwsub,'+') === true) {
$hkwsub = str_replace('+', ' ', $hkwsub);
}
} else {
$hkwsub = '';
}
if (strpos($kwttl,'{{hkw}}')) {
$kwttl = str_replace('{{hkw}}', $hkwsub, $kwttl);
}
错误日志为空
您关于strpos()
可以返回strict true的假设是错误的。 函数strpos()
返回以下之一:
false
;或者 您的完整代码应为:
$fullurl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$kwttl = get_the_title();
if (strpos($fullurl,'hkw') !== false) {
$hkwsub = $_GET['hkw'];
if (strpos($hkwsub,'+') !== false) {
$hkwsub = str_replace('+', ' ', $hkwsub);
}
} else {
$hkwsub = '';
}
if (strpos($kwttl,'{{hkw}}') !== false) {
$kwttl = str_replace('{{hkw}}', $hkwsub, $kwttl);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.