2017-07-08 120 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中,則返回一個真值。所以我不會用它來比較兩個字符串是否相等,只要你想看看一個字符串是否在另一個字符串內或者想知道字符串在另一個字符串的內部。