2017-07-08 117 views
-1

我正在使用PHP 7.0,我只想进行字符串比较。 PHP有strpos strcmp函数来做这件事,但我不知道哪个函数会快速和安全地进行字符串比较。我必须比较大量的字符串,我想知道哪个函数会带来更快的结果。用于strpos的PHP字符串比较strcmp

在我的测试中,strpos对于数组字符串比较不返回NULL,但是strcmp会返回NULL。在PHP 7中我测试过了,但我可能使用其他PHP版本进行托管,而且这个问题会很敏感。可以使用if(strpos($ x,$ y))来使用字符串比较吗?

+0

如果你只是想知道他们是否一样: if($ a == $ b){//做点什么} – Difster

+0

AA ....我只是这么想的。 ..谢谢你的支持!是否(strpos($ x,$ y))比较安全? – fnclovers

+0

因为我可能不完全理解想要做什么,所以我建议你阅读文档。 http://php.net/manual/en/function.strpos.php – Difster

回答

1

strpos - 查找字符串的第一个出现的位置在一个字符串

的strcmp - 二进制安全字符串比较

如果字符串是一个文本字符串,就像您从用户输入或任何事情那不是二进制的,那么strcmp似乎有点矫枉过正。 我会用Difster的建议;它读清洁器然后如果(的strcmp($一个,$ b))的

混合strpos(字符串$草堆,混合$针[摘要$偏移量= 0])

这是strpos方法的签名将如果$ b在$ a中,则返回一个真值。所以我不会用它来比较两个字符串是否相等,只要你想看看一个字符串是否在另一个字符串内或者想知道字符串在另一个字符串的内部。