【问题标题】:Substring search is failing...Any ideas?子字符串搜索失败......有什么想法吗?
【发布时间】:2022-01-10 16:37:14
【问题描述】:

我正在尝试查找数组中出现的子字符串。 这是字符串:

$string = "????????????????????Watch the game at @TheGoalTX on #GoaltimeSaturdays!"

这是数组:

$venues = array (
    [ "name" => "McDonalds", "slogan" => "Im Lovin It" ],
    [ "name" => "The Goal", "slogan" => "GoaltimeSaturday" ],
    [ "name" => "McDonalds", "slogan" => "McRibs are back" ],
    );

我正在运行一个数组搜索,如果任一搜索条件为真,我想在其中运行一个脚本:

foreach ($venues as $venue) {
    if ((stristr($string,$venue['name'])) OR (stristr($string,$venue['slogan'])) !== false) {
        include "do.stuff.php";
        }
    }

麦当劳的两个数组行显然失败了。没问题。

但由于某种原因,“标语”元素“GoaltimeSaturday”的搜索失败,我不太清楚为什么。它应该满足“if”标准,但永远不会达到“do.stuff.php”。

这里有一点帮助/有什么想法吗?字符串中的“”??????????????????????”表情或“#”或“@”字符可能是问题吗?我不知道为什么我在 foreach 循环中没有得到真实/肯定的搜索结果...

感谢您在这方面的帮助...

【问题讨论】:

  • 我在 if 中使用了一个简单的 echo 进行了测试,它确实有效,所以可能是您包含的文件。
  • 它在我的末端工作正常,没有任何问题。尝试检查包含的文件是否有任何问题。
  • 看来是这样。谢谢@GarrGodfrey 和 OMi

标签: php arrays if-statement


【解决方案1】:

如果include "do.stuff.php" 从未到达,但您等待到达它,则表示您的条件不正确。 我认为问题在于额外的大括号,试试这个:

if ((stristr($string,$venue['name']) OR stristr($string,$venue['slogan'])) !== false)

我也不知道 OR 逻辑运算符 'OR' 或 '||' 之间的区别。

UPD

  1. 可以显示do.stuff.php 文件内容吗?
  2. 日志或控制台输出中是否有任何错误或通知?

【讨论】:

  • 代码没有问题。它肯定与包含的文件有关。
  • 是牙套。谢谢!
猜你喜欢
  • 2011-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-15
  • 2013-08-22
  • 2011-04-30
  • 2019-01-21
相关资源
最近更新 更多