在PHP中使用strpos和URL的条件


Conditional using strpos and URLs in PHP

我有以下PHP代码来运行一个条件代码块。如果页面URL中有"/结账/收到订单/",我需要一个弹出窗口来不加载。

这是我当前的非工作代码。。。

(获取当前页面URL的函数文件中的代码)

// Get the page URL to disable the checkout popup.
$GLOBALS['checkout_page_url']  = $_SERVER["REQUEST_URI"];

(相关包含文件中的代码)

<?php
if (strpos($GLOBALS['checkout_page_url'], '/checkout/order-received/') !== true) {
// show popup
} else {
// do not show popup
}
?>

如果第一部分是"/结账/收到订单/",无论URL如何,我都需要弹出窗口不加载

我知道这个变量是在函数文件中设置的,因为出于测试目的,我在页脚中回显了这个变量,所以我的条件代码有问题。

strpos()从不返回布尔值true,因此它将始终与!==运算符不相等。它返回一个整数字符位置或布尔值false:

if (strpos($GLOBALS['checkout_page_url'], '/checkout/order-received/') === false) {

您必须使用===,因为它也可以返回0,即==false,但意味着它是在位置0处找到的。