2011-08-12 10 views
40

से पहले 3 वर्ण और अंतिम 3 वर्ण हटाएं मुझे स्ट्रिंग के पहले 3 अक्षर और स्ट्रिंग के अंतिम 3 अक्षरों को हटाने की आवश्यकता है। मुझे पता है कि मैं एक निश्चित चरित्र से शुरू करने के लिए सबस्ट्र() का उपयोग कर सकता हूं लेकिन अगर मुझे पहले और आखिरी पात्रों को पट्टी करने की ज़रूरत है तो मुझे यकीन नहीं है कि मैं वास्तव में इसका उपयोग कर सकता हूं। कोई सुझाव?स्ट्रिंग PHP

उत्तर

88

length तर्क (3 तर्क) के रूप में एक नकारात्मक मूल्य दर्रा, जैसे:

$result = substr($string, 3, -3); 

तो यह:

<? 
    $string = "Sean Bright"; 
    $string = substr($string, 3, -3); 
    echo $string; 
?> 

आउटपुट:

n Bri
1

मुझे php नहीं पता, लेकिन क्या आप स्ट्रिंग की लंबाई नहीं ले सकते हैं, स्थिति 3 के रूप में शुरू कर सकते हैं और सबस्ट्रेट का उपयोग करके लंबाई -6 अक्षर ले सकते हैं?

+0

ठीक है अगर मैं सबस्ट्रेट करता हूं, तो यह वास्तव में वर्णों को नहीं लेता है। अगर मैं substr ($ var, 3) करता हूं तो यह तीसरी स्थिति से शुरू होगा। फिर यदि मैं सबस्ट्र ($ var, -3) करता हूं तो इसमें स्ट्रिंग में पहले 3 वर्ण होंगे, और 3 वर्णों को जल्दी समाप्त कर देंगे। मुझे चरित्रों को पूरी तरह हटाने के लिए इसकी आवश्यकता है। –

+0

@Howdy_McGee देखें शॉन ब्राइट और जोनाथन एम के उत्तर –

+0

ऐसा लगता है जैसे शॉन ब्राइट ने आपका उत्तर प्रदान किया है। या क्या आप मूल स्ट्रिंग से वर्णों को हटाने का मतलब है? मुझे पता है कि यह तकनीकी रूप से एक ही बात नहीं है, लेकिन आप अपने मूल चर को जो भी सबस्ट्रेट रिटर्न के साथ बदल सकते हैं। –

1
$myString='123456789'; 
$newString=substr($myString,3,-3); 
+0

डीएनएन, टी को पता है कि सबस्ट्रेट ने तीसरा पैरामीटर स्वीकार किया है! धन्यवाद! –

2
substr($string, 3, strlen($string) - 6) 
27

उपयोग

substr($var,1,-1) 

यह हमेशा strlen का उपयोग किए बिना पहली और आखिरी मिल जाएगा।

उदाहरण:

<?php 
    $input = ",a,b,d,e,f,"; 
    $output = substr($input, 1, -1); 
    echo $output; 
?> 

आउटपुट:

ए, बी, डी, ई, एफ

+0

यह स्वीकार किए गए एक से अधिक बहुमुखी उत्तर है, हालांकि स्वीकृत उत्तर आवश्यक 3 वर्ण समस्या को पूरा करता है। –

5

के रूप में अन्य उत्तर में कहा गया है कि आप निम्न में से एक का उपयोग कर सकते आपके लक्ष्य तक पहुंचने के लिए कार्य:

  • substr($string, 3, -3) आरंभ और अंत से 3 वर्ण निकालता है
  • trim($string, ",") आरंभ और अंत से सभी विशिष्ट वर्ण
  • ltrim($string, ".") शुरू से ही सभी विशिष्ट वर्ण निकालता है
  • rtrim($string, ";") अंत से सभी विशिष्ट वर्ण

यह निर्भर करता है निकालता है निकालता है उन वर्णों की मात्रा पर जिन्हें आपको हटाने की आवश्यकता है और यदि हटाने को विशिष्ट होना आवश्यक है। लेकिन अंत में substr() अपने प्रश्न का पूरी तरह उत्तर देते हैं।

शायद कोई व्यक्ति string dereferencing के माध्यम से पहले/अंतिम चार को हटाने के बारे में सोचता है।भूल जाते हैं कि, यह null साथ ही एक चार है काम नहीं करेगा:

<?php 
$string = 'Stackoverflow'; 
var_dump($string); 
$string[0] = null; 
var_dump($string); 
$string[0] = null; 
var_dump($string); 
echo ord($string[0]) . PHP_EOL; 
$string[1] = ''; 
var_dump($string); 
echo ord($string[1]) . PHP_EOL; 
?> 

रिटर्न:

string(13) "Stackoverflow" 
string(13) "tackoverflow" 
string(13) "tackoverflow" 
0 
string(13) "ackoverflow" 
0 

और यह तार के लिए unset($string[0]) उपयोग करने के लिए संभव नहीं है:

घातक त्रुटि: लाइन पर /usr/www/***.php में स्ट्रिंग ऑफसेट को अनसेट नहीं कर सकता **

संबंधित मुद्दे