दिलचस्प पोस्ट
Qt में क्रॉस-थ्रेड सिग्नल कैसे निकल जाए? वैरिएबल का समाधान नहीं किया जा सकता गुण वर्ग का उपयोग कर मानचित्र को लोड करना एक प्रगति पट्टी प्रदर्शित करने के लिए asynctask का उपयोग कैसे करता है जो नीचे गिना जाता है? इंटरफ़ेस पर सी # 4 वैकल्पिक पैरामीटर को लागू करने पर लागू नहीं किया गया है? कक्षा में जावास्क्रिप्ट में तत्व कैसे प्राप्त करें? नेस्टेड संग्रह इकाई फ़्रेमवर्क ऑब्जेक्ट फ़िल्टर कैसे करें? कैसे एक रैक कार्य के लिए कमांड लाइन तर्क को पारित करने के लिए अरबी "यूनिकोड" सामग्री एचटीएमएल या एक्सएमएल को पीडीएफ से एक्सपोर्ट करें मैं Pythons समय के साथ प्रदर्शन के परीक्षण के लिए एक कोड खंड कैसे कर सकता हूँ? पायथन: फ़िल्ट और डिफ्लेलेट कार्यान्वयन क्या ऐसा फ़ाइल डाउनलोड करने के लिए एक लिंक जोड़ना संभव है जिसे केवल फेसबुक पर साझा करने से डाउनलोड किया जा सकता है? 4xcode में पायथन? अस्थायी बिंदु समानता का परीक्षण करना जावास्क्रिप्ट – वर्ग कोष्ठक के बीच वापसी स्ट्रिंग

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

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

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

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

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

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

$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