在Wordpress中将两个字符串与strpos进行比较。非字母字符会导致它失败吗?

时间:2019-07-18 18:15:05

标签: php wordpress string strpos

我只是试图比较两个字符串以查看它们是否完全匹配。如果它们匹配,我正在输出一个列表。一个字符串是使用get_the_title()从Wordpress获得的帖子的标题(自定义帖子类型)。另一个字符串是Wordpress中的类别。我正在使用get_categories(),然后是一个foreach语句,并使用$ category-> name。

您可以在该网站上看到对于某些网络研讨会,它可以正常工作并显示列表。但是对于任何标题中带有破折号和/或“&”号的网络研讨会,此方法均无效。

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

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

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

是否有更好/更简便的方法来简单比较两个字符串以查看它们是否匹配?

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

最后,因此您可以在我们的Wordpress中看到没有问题,请查看此图片。帖子标题与该帖子的类别完全匹配。这就是我要比较的。 Post title and category in Wordpress

1 个答案:

答案 0 :(得分:1)

您可以设置它们的子弹并以更简单,更安全的方式对其进行比较。