【问题标题】:strpos not working with string containig forward salsh [duplicate]strpos 不适用于包含正斜杠的字符串 [重复]
【发布时间】:2015-10-26 08:35:59
【问题描述】:

我正在尝试使用 php strpos 函数查找包含特定单词的天气字符串,我尝试了以下代码

echo strpos('sfsdf/abc/this', 'sfsdf/');

虽然它应该返回 true,因为 sfsdf/ 存在于字符串中,但我得到 0(false)。

这里是实时示例http://codepad.viper-7.com/dqvNCR

【问题讨论】:

  • 谢谢,请写下我会接受的答案。我可以得到字符串的结束位置以及开始吗?
  • strpos 返回找到的匹配的位置。在这种情况下,它将为零。如果你想要一个布尔结果,那么使用is_int(strpos(…))
  • 你的意思是如果你的字符串在哪里abc/this/sfsdf/?或sfsdf/abc/this/sfsdf/?
  • 谢谢我也得到了答案

标签: php


【解决方案1】:

你得到的0 不是假的,因为目标值是你的字符串的第一个值。

返回针存在的位置相对于 haystack 字符串的开始位置(与偏移量无关)。另请注意,字符串位置从 0 开始,而不是 1。

http://php.net/manual/en/function.strpos.php

演示:

echo strpos('asdf/sfsdf/abc/this', 'sfsdf/');

输出:

5

因为sfsdf/ 从第 6 个位置开始。

现场演示:http://codepad.viper-7.com/NgQnxL

【讨论】:

    【解决方案2】:

    请改用stristr

    返回匹配的子字符串。如果没有找到 needle,则返回 FALSE。

    <?php
    
    if(stristr('sfsdf/abc/this', 'sfsdf/'))
    {
        echo 1;
    }
    else
    {
        echo 0;
    }
    

    DEMO

    【讨论】:

    • 它就像一个魅力,干得好@Hassan
    • @AsimShahzad 谢谢。
    猜你喜欢
    • 2016-08-23
    • 2012-06-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2023-03-20
    • 2015-06-17
    相关资源
    最近更新 更多