दिलचस्प पोस्ट
एक बार संकलित मोंगोज के मॉडल को अधिलेखित नहीं किया जा सकता जांचें कि "exec" को अक्षम किया गया है स्ट्रिंग में स्पेस-सीमांकित शब्द अलग करें वास्तविक समय पुश अधिसूचना के पास एंड्रॉइड समर्थन क्या है? मुझे जावा में एक विधि पैरामीटर पर "अंतिम" कीवर्ड का उपयोग क्यों करना चाहिए? जावा के साथ Firebase (गैर- android) जानकारी पुनर्प्राप्त करें अजगर में एक स्ट्रिंग में एस्केप एजेक्शन प्रक्रिया करें इनपुट प्रकार संख्या में टाइपिंग को गैर-संख्यात्मक रोकें मैं git को एक फ़ाइल में भविष्य के संशोधनों को कैसे अनदेखा कर सकता हूं? जीडब्ल्यूटी में "सर्वलेट" (सर्वर-साइड) आरंभीकरण कोड मुझे मॉडल देखने का उपयोग क्यों करना चाहिए? जावास्क्रिप्ट में मॉड्यूल के दो घोषणाओं के बीच अंतर क्या है? वितरित संस्करण नियंत्रण प्रणाली और एंटरप्राइज़ – एक अच्छा मिश्रण? क्या मैं iPhone पर चाबी का गुच्छा का उपयोग कर सकता हूं? फ़ोल्डर्स की तारीख- उसके बाद- (सीएमडी फाइल में डेट कैल्श)

स्ट्रॉप्स के बारे में प्रश्न स्ट्रिंग की दूसरी घटना कैसे प्राप्त करें?

मैं समझता हूं कि इस फ़ंक्शन को स्ट्रिंग की पहली घटना मिलेगी।

लेकिन मुझे क्या चाहिए 2 वें घटना है

ऐसा करने के बारे में कैसे जाना है?

Solutions Collecting From Web of "स्ट्रॉप्स के बारे में प्रश्न स्ट्रिंग की दूसरी घटना कैसे प्राप्त करें?"

आपको वैकल्पिक तीसरा पैरामीटर के रूप में खोज की शुरुआत के लिए ओफ़्सेट निर्दिष्ट करने की आवश्यकता है और पहली घटना के बाद सीधे खोज शुरू करके उस गणना की गणना करें जिससे आप उस स्थान की खोज कर रहे हैं, जिस स्थान पर आप इसे खोज रहे हैं

$pos1 = strpos($haystack, $needle); $pos2 = strpos($haystack, $needle, $pos1 + strlen($needle)); 

मुझे पता है कि यह प्रश्न बहुत पुराना है, लेकिन यह एक ऐसा समारोह है जिसे मैंने एक उप-स्थान की Xth घटना प्राप्त करने के लिए लिखा था, जो अन्य लोगों के लिए उपयोगी हो सकता है जिनके पास यह समस्या है और इस धागे पर ठोकर खाती है।

 /** * Find the position of the Xth occurrence of a substring in a string * @param $haystack * @param $needle * @param $number integer > 0 * @return int */ function strposX($haystack, $needle, $number){ if($number == '1'){ return strpos($haystack, $needle); }elseif($number > '1'){ return strpos($haystack, $needle, strposX($haystack, $needle, $number - 1) + strlen($needle)); }else{ return error_log('Error: Value for parameter $number is out of range'); } } 

Smokey_Bud से रिकर्सिव समारोह मेरी स्क्रिप्ट को काफी धीमा कर रहा था। इस मामले में एक नियमित अभिव्यक्ति का उपयोग बहुत तेजी से होता है (किसी भी घटना को खोजने के लिए):

 function strposX($haystack, $needle, $number) { { // decode utf8 because of this behaviour: https://bugs.php.net/bug.php?id=37391 preg_match_all("/$needle/", utf8_decode($haystack), $matches, PREG_OFFSET_CAPTURE); return $matches[0][$number-1][1]; } // get position of second 'wide' $pos = strposX('Hello wide wide world', 'wide', 2); 

आप यह कोशिश कर सकते हैं, हालांकि मैंने इसे परीक्षण नहीं किया है-

 $pos = strpos($haystack, $needle, strpos($haystack, $needle)+strlen($needle)); 

सादगी खुबसुरत है

 function strposX($haystack, $needle, $n = 0) { $offset = 0; for ($i = 0; $i < $n; $i++) { $pos = strpos($haystack, $needle, $offset); if ($pos !== false) { $offset = $pos + strlen($needle); } else { return false; } } return $offset; } $offset = strposX($result, "\n", $n); if ($offset === false) { $offset = strlen($result) - 1; } 

एक वैकल्पिक तरीका वांछित चरित्र से स्ट्रिंग विस्फोट किया जाना चाहिए और फिर इसे इच्छित इंडेक्स पर सरणी से प्राप्त करें

उदाहरण के लिए मेरे पास स्ट्रिंग की तरह है

 $str = "hello-world-how-are-you-doing"; 

और मुझे चौथाई घटना के बाद पाठ पाने की आवश्यकता है- अर्थात मैं चाहता हूं कि "आप"

मुझे इसे एक सरणी बनाने के लिए विस्फोट करना होगा

 $array = explode("-", $str); echo $array[4]; 

सिर्फ मुझे खोजने के लिए काम किया है कि क्या 2 या अधिक वर्णों की संख्या होती है, फिर उन्हें पता चला कि 2 उपस्थिति मौजूद हैं (मैं $ मैचों का उपयोग नहीं करता):

 $string = '1234|6|#red'; if(strlen(preg_match_all('/|/', $string,$matches, PREG_OFFSET_CAPTURE)) ==2){ echo 'i have 2 occurence of char: |'; } 

कृपया निम्नलिखित कोड की जांच करें … यह मेरे लिए बहुत अच्छा काम करता है

 <?php function f_srch ($s1, $par) { echo 'Searching for [' . $par . '] in [' . $s1 . ']<br>'; $k = 0; //while loop $i = 0; // counter while ($k >= 0) { $pos = strpos($s1, $par, $k); if ($pos === false) { $k=-1; echo 'Letter not found'.'<br>'; } else { if ($pos == $k) { echo 'The position of the letter is '.$pos.'<br>'; $i++; } $k++; } } echo 'The letter was found ' . $i . ' time(s).'.'<br>'; } f_srch('i am searching for a letter in this sentence','t'); ?> 

http://php.net/strpos

 $newstring = 'abcdef abcdef'; $pos = strpos($newstring, 'a', 1); // $pos = 7, not 0