需要用来自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);
}
错误日志为空
答案 0 :(得分:1)
您对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);
}