दिलचस्प पोस्ट
चहचहाना बूटस्ट्रैप संकुचित प्लगइन दिशा-क्षैतिज के बजाय कार्यक्षेत्र एक डेटाफ्रेम से पंक्तियों को कैसे हटाएं जिसमें n * NA शामिल है आरएसपीसी का उपयोग कब करें ()? मैं VS2008 का उपयोग करते हुए एक ऐप्लिकेशन में एक एप्लिकेशन मैनिफ़ेस्ट को कैसे एम्बेड कर सकता हूं? आईफ्रेम से एक मूल विंडो फ़ंक्शन कॉल करना क्या करता है <! ]> एक्सएमएल अर्थ में? फॉर्म पर जावास्क्रिप्ट पोस्ट सबमिट करें एक नई विंडो मैं DataReader को आसानी से <T> कैसे परिवर्तित कर सकता हूं? MVC तारीख समय गलत दिनांक प्रारूप के साथ बाध्यकारी मास्टर में जीआईटी शाखा को मर्ज करने के लिए सर्वश्रेष्ठ (और सबसे सुरक्षित) तरीका कस्टम लॉक स्क्रीन का विकास करना एएसपी.नेट एमवीसी 3 में अपना खुद का एचएमएसएचएलपर जोड़ना दृश्य स्टूडियो 2013 में एक समाधान फ़ाइल (एसएलएन) को कैसे खोलने के लिए मजबूर किया जाए? क्या कोई ओ (1 / एन) एल्गोरिदम हैं? एक पायथन स्क्रिप्ट से POST का उपयोग करके फ़ाइल भेजें

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

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

लेकिन मुझे क्या चाहिए 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