2011-01-12 5 views
6

मेरे पास एक PHP अनुप्रयोग का हिस्सा है जो उपयोगकर्ता द्वारा लंबे स्ट्रिंग इनपुट का आकलन करता है, और उस संख्या को निकालता है जो उपयोगकर्ता की स्ट्रिंग में हमेशा 20 वर्णों को शुरू करता है। संख्या के अंत हमेशा एक दोहरे उद्धरण (") द्वारा पीछा किया जाताPHP में एक स्ट्रिंग से एक सबस्ट्रिंग निकालने के लिए कैसे एक निश्चित चरित्र तक पहुंचता है?

केवल समस्या यह है कि मैं कितनी देर तक प्रत्येक उपयोगकर्ता के लिए नंबर होगा पता नहीं है, सभी मुझे पता करना पड़े।

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

धन्यवाद।

उत्तर

11

आप strpos उपयोग कर सकते हैं से " के पहले की स्थिति प्राप्त करने के लिए स्थिति 20:

$pos = strpos($str, '"', 20); 

स्थिति तब-स्ट्रिंग प्राप्त करने के लिए इस्तेमाल किया जा सकता है कि:

if ($pos !== false) { 
    // " found after position 20 
    $substr = substr($str, 20, $pos-20-1); 
} 

तीसरे पैरामीटर के लिए गणना के लिए आवश्यक है के रूप में substr-स्ट्रिंग की लंबाई और न अंत स्थिति की उम्मीद है। यह भी ध्यान रखें कि substrfalse देता है यदि सुईहैस्टैक में नहीं मिल सकता है।

+0

सुंदर +1 .. –

0
<? 

$str = substring($input, 20, strpos($input, '"') - 20); 
echo $str; 

?> 

या कि आदि की तरह कुछ

0

20 वर्ण के बाद दोहरे उद्धरण की पहली आवृत्ति मिल जाए, 19 घटाना - कि वांछित सबस्ट्रिंग की आप लंबाई देता है:

$dq = strpos($string,'"',19); //19 is index of 20th char 
$desired_string = substr($string,19,$dq-19); 
0

के लिए जा रहे यदि आपको सबस्ट्रिंग फ़ंक्शन के साथ सहायता की आवश्यकता है तो बस गम्बो के जवाब में जोड़ें:

$pos = strpos($str, '"', 20); 
$substring = substr($str, 20, $pos); 
संबंधित मुद्दे