PHP मैनुअल के अनुसार, हाँ- strpos()
यह निर्धारित करने का सबसे तेज़ तरीका है कि एक स्ट्रिंग में कोई दूसरा है या नहीं।
नोट:
आप केवल निर्धारित करने के लिए चाहते हैं, तो एक विशेष सुई भूसे के ढेर के भीतर होती है, तेजी से और कम स्मृति गहन समारोह strpos() के बजाय का उपयोग करें।
इस बार उद्धृत किया गया है और फिर अन्य स्ट्रिंग तुलनाकारक के बारे में कोई php.net लेख में
(मैं strstr()
से एक खींच लिया) हालांकि दो परिवर्तन है कि आपके कथन का बनाया जाना चाहिए नहीं है।
if (strpos($storage->getMessage($i),'chocolate') !== FALSE)
इसका कारण यह है if(0)
गलत का आकलन (और इसलिए नहीं चलता है), तथापि strpos()
0 लौटा सकते हैं या सुई बहुत शुरुआत में (स्थिति 0) भूसे के ढेर की है। साथ ही, htmlentities()
को हटाकर आपका कोड बहुत तेज हो जाएगा। सभी htmlentities()
कुछ वर्णों को उनके उचित HTML समकक्ष के साथ प्रतिस्थापित करता है। उदाहरण के लिए, यह बदल देता है हर &
&
साथ आप कल्पना कर सकते हैं, जाँच एक स्ट्रिंग में हर चरित्र को व्यक्तिगत रूप से और उनमें से कई की जगह बेहद स्मृति और प्रोसेसर गहन है। इतना ही नहीं, लेकिन अगर आप टेक्स्ट तुलना करने की योजना बना रहे हैं तो यह अनावश्यक है। उदाहरण के लिए, की तुलना में निम्नलिखित कथनों:
strpos('Billy & Sally', '&'); // 6
strpos('Billy & Sally', '&'); // 6
strpos('Billy & Sally', 'S'); // 8
strpos('Billy & Sally', 'S') // 12
या, एक और भी अधिक चरम मामले में, आप भी गलत पर मूल्यांकन करने के लिए कुछ सच हो सकती है।
strpos('<img src...', '<'); // 0
strpos('<img src...','<'); // FALSE
इसे रोकने के लिए आप और भी अधिक HTML इकाइयों का उपयोग कर समाप्त हो जाएंगे।
strpos('<img src...', '<'); // 0
लेकिन जैसा कि आप कल्पना कर सकते हैं, यह केवल कोड के लिए परेशान नहीं है बल्कि अनावश्यक हो जाता है। आप पूरी तरह से HTML इकाइयों को छोड़कर बेहतर हैं। आमतौर पर एचटीएमएल इकाइयों का उपयोग तब किया जाता है जब आप टेक्स्ट आउटपुट कर रहे हों। तुलना नहीं कर रहा है।
आपको ** ** स्ट्रॉप() 'फ़ंक्शन के साथ सख्त तुलना ऑपरेटर का उपयोग करना होगा। ऐसा इसलिए है क्योंकि यह एक पूर्णांक '0' वापस कर सकता है, जिसका अर्थ है स्ट्रिंग 'चॉकलेट' स्ट्रिंग की शुरुआत में पाया गया था। आपके पास बयान के साथ, यह 'गलत' का मूल्यांकन करेगा। सही होगा 'अगर (स्ट्रॉप्स (htmlentities ($ भंडारण-> getMessage ($ i)),' चॉकलेट ')!== गलत) ' – chigley
आप 'htmlentities()' का उपयोग क्यों कर रहे हैं? यह सब कुछ धीमा कर देता है। – NullUserException
क्योंकि मैं यह भी खोज रहा हूं कि यह HTML में है या नहीं - अगर मैं htmlentities टैग को छोड़ देता हूं तो क्या यह यूआरएल को ध्यान में रखेगा? उदाहरण के लिए –