在 Wordpress 中用 strpos 比较两个字符串。 non-alpha 个字符会导致它失败吗?

Comparing two strings with strpos in Wordpress. Do non-alpha characters cause it to fail?

我只是想比较两个字符串,看看它们是否完全匹配。如果它们匹配,我将输出一个列表。一个字符串是来自 Wordpress 的 post(自定义 post 类型)的标题,使用 get_the_title()。另一个字符串是来自 Wordpress 的类别。我正在使用 get_categories(),然后是 foreach 语句并使用 $category->name.

您可以在该网站上看到,对于某些网络研讨会,它运行良好并显示了列表。但对于标题中带有破折号 and/or 和号的任何网络研讨会,它都不起作用。

https://www.financialpoise.com/testwebs/page/2/

我尝试在比较字符串之前执行 htmlentities(),但没有任何改变。以下是我进行比较的方式:

foreach ( $categories as $category ) {
    if(strpos(get_the_title(), $category->name) !== false) {
        //run code here
    }
}

是否有 better/easier 方法来简单地比较两个字符串以查看它们是否匹配?

如果不是,为什么破折号或符号会导致 strpos() 函数失败?理论上 needle 和 haystack 变量可以是任意顺序,因为它正在另一个完整字符串中寻找一个完整字符串。

最后,为了让大家在我们的Wordpress中看到没有问题,看看这张图。 post 的标题与 post 上的类别完全匹配。这就是我要比较的。

您可以设置它们的 slug 并将它们作为一种更简单、更安全的方式进行比较。