मैं PHP स्ट्रिंग के अंतिम 7 वर्ण कैसे प्राप्त कर सकता हूं?


278

मैं नीचे दिए गए स्ट्रिंग के अंतिम 7 वर्णों को हथियाने के बारे में कैसे जाऊँगा?

उदाहरण के लिए:

$dynamicstring = "2490slkj409slk5409els";
$newstring = some_function($dynamicstring);
echo "The new string is: " . $newstring;

जो प्रदर्शित होगा:

The new string is: 5409els


8
एक प्रश्न के रूप में पहचाना जाने वाला प्रश्न वास्तव में इस प्रश्न के समान नहीं है।
आसाप

13
यह विडंबना है कि मैं इस विषय के लिए Google खोजते समय यहां ले गया हूं। sigh
लियोनार्डकैल्सिस

5
@ एसाफ मैं इसे स्टैक प्रभावित कहता हूं। लोग सवालों को बंद करने के लिए कुछ भी करने की कोशिश करते हैं, पहली बात यह है कि वे इसे झंडी
दिखाने के

5
यह बहुत आसान है और समस्या को हल करने के लिए तेज़ है और मैनुअल के माध्यम से जाने की तुलना में SO में उत्तर में कोड की एक पंक्ति ढूंढता है।
एंगिन यापीची

जवाबों:


597

substr()2 तर्क के लिए ऋणात्मक संख्या के साथ उपयोग करें ।

$newstring = substr($dynamicstring, -7);

से php डॉक्स :

string substr ( string $string , int $start [, int $length ] )

यदि प्रारंभ ऋणात्मक है, तो स्ट्रिंग के अंत से लौटा हुआ स्ट्रिंग स्टार्ट'थ चरित्र पर शुरू होगा।


लेकिन अगर $ डायनस्ट्रीमिंग 7 अक्षरों से कम है, तो $ न्यूस्ट्रिंग खाली हो जाएगा। (कम से कम PHP 5.2.6 पर)
स्कॉट चू

आप हमेशा देख सकते हैं कि स्ट्रलेन के साथ पहली बार यह देखने के लिए कि क्या वर्णों की संख्या 7. से अधिक या बराबर है
PBwebD


14

मल्टीबाइट कैरेक्टर कोड के साथ काम करने के लिए सुरक्षित परिणाम, सबवे रूट के बजाय mb_substr का उपयोग करते हैं। Utf-8 के लिए उदाहरण:

$str = 'Ne zaman seni düşünsem';
echo substr( $str, -7 ) . ' <strong>is not equal to</strong> ' .
  mb_substr( $str, -7, null, 'UTF-8') ;

11

स्ट्रिंग मिलने से पहले जांच करवाना बेहतर होगा।

$newstring = substr($dynamicstring, -7);

यदि वर्ण अधिक हैं, तो 7 अंतिम पिछले 7 वर्ण वापस दिए गए स्ट्रिंग प्रदान करते हैं।

या ऐसा करें यदि आपको संदेश या त्रुटि वापस करने की आवश्यकता है यदि लंबाई कम है तो 7

$newstring = (strlen($dynamicstring)>7)?substr($dynamicstring, -7):"message";

सामग्री प्रलेखन


मुझे लगता है कि एक संदेश वापस देने के लिए दूसरे भाग की आवश्यकता है। कुछ अवैध डेटा दर्ज किया गया या ..
नेरी

1
यह शायद सबसे अच्छा जवाब है, केवल एक चीज जो इसे बेहतर बना सकती है वह है php मैनुअल का संदर्भ।
मार्क कारपेंटर जूनियर

2

सादगी के लिए, यदि आप संदेश नहीं भेजना चाहते हैं, तो यह प्रयास करें

$new_string = substr( $dynamicstring, -min( strlen( $dynamicstring ), 7 ) );

0

पिछले 7 पात्रों के लिए

$newstring = substr($dynamicstring, -7);

$ newstring: 5409els

पहले 7 पात्रों के लिए

$newstring = substr($dynamicstring, 0, 7);

$ newstring: 2490slk


-1

एक स्ट्रिंग के अंतिम 7 वर्ण:

$ आराम = पदार्थ ("एब्डेफ़ेइजिक्कलमॉप", -7); // रिटर्न "jklmnop"

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.