2011-08-08 18 views
11
$filename = 'my_upgrade(1).zip'; 
$match = 'my_upgrade'; 

if(!strpos($filename, $match)) 
    { 
    die(); 
    } 
else 
    { 
    //proceed 
    } 

उपरोक्त कोड में, मैं स्क्रिप्ट से मरने की कोशिश कर रहा हूं जब फ़ाइल नाम में टेक्स्ट स्ट्रिंग "my_upgrade" नहीं है। हालांकि, दिए गए उदाहरण में, "my_upgrade (1) .zip" स्ट्रिंग "my_upgrade" से मरना नहीं चाहिए।इनपुट स्ट्रिंग में स्ट्रिंग मौजूद है या नहीं यह निर्धारित करने के लिए स्ट्रॉप्स का उपयोग कैसे करें?

मुझे क्या याद आ रही है?

+0

स्ट्रॉप्स मैच की संख्यात्मक स्थिति देता है, तो स्ट्रिंग की पहली घटना की स्थिति पाती है। यकीन नहीं है कि अगर मदद करता है। –

उत्तर

31

strpos स्ट्रिंग नहीं मिला है, और 0 यदि शुरुआत में पाया जाता है तो false देता है। identity operator का प्रयोग दो भेद करने के लिए:

if (strpos($filename, $match) === false) { 

वैसे, इस तथ्य को एक लाल रंग की पृष्ठभूमि और official documentation में एक विस्मयादिबोधक चिह्न के साथ दर्ज है।

1
false === strpos($filename, $match) 

strpos functionDocs रिटर्न false यदि नहीं मिला या 0 अगर स्थिति 0 पर पाया (प्रोग्रामर अक्सर 0 पर गिनती शुरू करना चाहते):

चेतावनी इस समारोह बूलियन FALSE वापस आ सकते हैं, लेकिन हो सकता है FALSE, जैसे कि 0 या "" का मूल्यांकन करने वाले गैर-बूलियन मान को भी वापस लौटाएं। अधिक जानकारी के लिए कृपया बूलियन पर अनुभाग पढ़ें। इस फ़ंक्शन के रिटर्न वैल्यू का परीक्षण करने के लिए === ऑपरेटर का उपयोग करें।

4
if (strpos($filename, $match) === false) 

अन्यथा, strpos0, जो false है (मैच के सूचकांक) वापस आ जाएगी।

=== ऑपरेटर भी चर के प्रकार की तुलना करेंगे (बूलियन! = पूर्णांक) इस मामले में

0

strpos एक शून्य है, जो तब झूठे के रूप में interpretted है जब आप तार्किक निषेध कर वापस आ जाएगी। आपको बूलियन false के लिए स्पष्ट रूप से जांच करनी चाहिए।

1

strpos() फ़ंक्शन केस-संवेदी है।

if(strpos($filename, $match) !== false) 
     { 
     // $match is present in $filename 
     } 
    else 
     { 
     // $match is not present in $filename 
     } 

केस-संवेदी उपयोग करने के लिए stripos() का उपयोग करें, जो कि किसी अन्य स्ट्रिंग (केस-असंवेदनशील)

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

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