【问题标题】:Strpos not workingStrpos 不工作
【发布时间】:2017-02-14 18:37:59
【问题描述】:

我需要查看用户当前所在的 URL 是否与数据库中的 URL 非常匹配(因此包含)。然而 strpos 似乎并没有正确地完成这项工作。

这是我正在使用的代码

if(strpos($row['url'], $currenturl) === 0) {
    echo "YEAH!";
    return true;
}
echo "Current URL: ".$currenturl." Permission URL: ".$row['url']." Strpos ".strpos($row['url'], $currenturl)."<br>";

这是调试输出。

当前网址:projects/projectview.php?whmcsid=0&id=4 权限网址:projects/projectview.php?whmcsid=0 Strpos

所以它不匹配。有什么想法吗?

【问题讨论】:

  • 工作正常3v4l.org/GUoFpvar_dump你的网址,可能有多余的空格或换行。如果为真 - trim 他们。

标签: php


【解决方案1】:

您的参数顺序无效。 strposhaystack 中搜索needle,所以:

if(strpos($currenturl, $row['url']) === 0) {
    // code here
}

【讨论】:

    【解决方案2】:

    要知道子字符串不存在,你必须使用,

       ===FALSE
    

    0 也可以表示子串的起始位置。

    【讨论】:

    • 他想要的是起始位置,而不是 FALSE。
    • 我的错。那么应该是 !==FALSE
    • 不应该保持 === 0,因为在这种情况下 0 是起始位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2011-11-13
    • 1970-01-01
    相关资源
    最近更新 更多