2012-02-02 10 views
20

एसक्यूएल में हमारे पास NOT LIKE %string%परीक्षण करें यदि स्ट्रिंग में PHP में कोई शब्द है?

मुझे PHP में ऐसा करने की आवश्यकता है।

if ($string NOT LIKE %word%) { do something }

मुझे लगता है कि कि strpos()

साथ किया जा सकता है, लेकिन यह पता लगाने कैसे ..

मैं वास्तव में वैध PHP में है कि comparission वाक्य जरूरत सके।

if ($string NOT LIKE %word%) { do something }

धन्यवाद

+0

मैं शीर्षक अद्यतन बेहतर प्रतिबिंबित करने के लिए सवाल। शब्द मिलान के सटीक अर्थशास्त्र भी निर्धारित किए जाने चाहिए। कुछ स्थितियों में '\ bword \ b' या' \ bword | word \ b' का उपयोग करना बेहतर हो सकता है। –

+0

संभावित डुप्लिकेट [जांचें कि क्या स्ट्रिंग में विशिष्ट शब्द हैं?] (Http://stackoverflow.com/questions/4366730/check-if-string-contains-specific-words) – Jeroen

उत्तर

47
if (strpos($string, $word) === FALSE) { 
    ... not found ... 
} 

ध्यान दें कि strpos() केस संवेदी है, यदि आप एक केस-संवेदी खोज, stripos() बजाय का उपयोग करना चाहते हैं।

सख्त समानता परीक्षण को मजबूर करने के लिए === पर भी ध्यान दें। यदि 'सुई' स्ट्रिंग 'हैस्टैक' की शुरुआत में है तो स्ट्रॉप्स एक वैध 0 वापस कर सकते हैं। एक वास्तविक बूलियन झूठी (उर्फ 0) के लिए चेक मजबूर करके, आप उस झूठी सकारात्मक को खत्म करते हैं।

+0

ध्यान दें कि% शब्द% वाइल्डकार्ड है, न कि परिवर्तनीय ... $ स्ट्रिंग में चार रूपों में एक आईपी पता होता है, जैसे $ string = 123.456.789.100, और मैं 123.456% –

+0

@LucasMatos के साथ शुरू होने वाले (पसंद नहीं) को बाहर करना चाहता हूं, तो '$ word = "word" फिर ... जबकि यह एक वाइल्डकार्ड है, यह एक बहुत ही छोटा उपयोग ("फ़्लोटिंग सिरों") है जो 'स्ट्रॉप्स' कवर करता है (और वास्तव में यह * है * क्योंकि * स्ट्रॉप्स 'यहां काम करता है!)। '$ word =" a? b "' इस दृष्टिकोण के साथ काम नहीं करेगा, अगर '? 'किसी भी चरित्र से मेल खाने के लिए" था, उदाहरण के लिए –

+2

@LUcas: तो सवाल में ऐसा कहा जाना चाहिए था। सरल उदाहरणों को सरल उत्तर मिलते हैं। –

16

strpos का उपयोग करें। यदि स्ट्रिंग नहीं मिली है तो यह false देता है, अन्यथा ऐसा कुछ जो false नहीं है। के रूप में 0 लौटाया जा सकता है एक प्रकार सुरक्षित तुलना (===) का उपयोग सुनिश्चित करें और यह एक falsy मूल्य है:

if (strpos($string, $substring) === false) { 
    // substring is not found in string 
} 

if (strpos($string, $substring2) !== false) { 
    // substring2 is found in string 
} 
1
<?php 
// Use this function and Pass Mixed string and what you want to search in mixed string. 
// For Example : 
    $mixedStr = "hello world. This is john duvey"; 
    $searchStr= "john"; 

    if(strpos($mixedStr,$searchStr)) { 
     echo "Your string here"; 
    }else { 
     echo "String not here"; 
    } 
+0

यह $ विफल हो जाएगा यदि $ searchStr $ मिश्रित एसटीआर की भिखारी पर है। उस उदाहरण में, यदि आप "हैलो" खोजते हैं, तो आप "यहां स्ट्रिंग नहीं" गूंजेंगे, क्योंकि स्ट्रॉप्स 0 लौटाएंगे, जो अन्य शर्त में शाखाबद्ध होगा। स्ट्रॉप्स के वापसी मूल्य की जांच करते समय हमेशा === का उपयोग करें। –

0

use 
 

 
if(stripos($str,'job')){ 
 
    // do your work 
 
}

+1

यह पिछले उत्तर के समान है !!! –

+0

@ रोहित गुप्ता नहीं, उसके पास कोड स्निपेट नमूना है। – a20

संबंधित मुद्दे