मैं PHP में एक स्ट्रिंग के अंत में सभी विशिष्ट वर्ण कैसे निकालूं?


86

यदि यह अवधि है तो मैं केवल अंतिम चरित्र कैसे निकालूं?

$string = "something here.";
$output = 'something here';

जवाबों:


157
$output = rtrim($string, '.');

(संदर्भ: PHP.net पर rtrim )


1
@ एलिक्स: हाँ rtrimबहुत आसान के बारे में भूल गया ...!
रेजजेड

2
इसे हटाने के लिए अवांछित हो सकता है ... (एलिप्सिस):
mys

2
@OndrejIvanic: आप उस के लिए है। यदि आप अंतिम बिंदु को हटाते हैं, और शेष अभी भी एक बिंदु है, तो प्रश्न शीर्षक बहुत मायने नहीं रखेगा, क्या यह होगा?
एलिक्स एक्सल

29

rtrim का उपयोग सभी को प्रतिस्थापित करता है "।" अंत में, केवल अंतिम चरित्र नहीं

$string = "something here..";
echo preg_replace("/\.$/","",$string);

3
मैं अनुमान लगा रहा हूं कि ओपी सभी को हटाना चाहता है। ' अंत में, अन्यथा सिर्फ एक को क्यों हटाएं? ;)
तोर वलामो

2
हां, मैं यह अनुमान लगा रहा हूं। प्रश्न का यथासंभव अनुसरण करें।
घोस्टडॉग ghost३

2
यह बेहतर है, बहुत सारे लोग उपयोग करते हुए एहसास नहीं है character_maskमें trimमूल रूप से पूरी स्ट्रिंग में चरित्र के किसी भी मामले को हटा
ब्रॉक Hensley

8

केवल अंतिम चरित्र को हटाने के लिए यदि यह एक अवधि है और preg_replaceहम इसका सहारा नहीं ले रहे हैं तो हम स्ट्रिंग को चार वर्णों के रूप में मान सकते हैं और यदि यह एक बिंदु है तो अंतिम वर्ण को हटा दें।

if ($str[strlen($str)-1]==='.')
  $str=substr($str, 0, -1);

2
यह सही उत्तर है क्योंकि अन्य सभी अनुगामी पात्रों को हटा देंगे, न कि केवल अंतिम। लेकिन आपको टाइप समानता ===के ==लिए भी जांच करने के बजाय उपयोग करना चाहिए
padawanTony

3

मुझे पता है कि सवाल हल है। लेकिन शायद यह जवाब किसी के लिए मददगार होगा।

rtrim() - स्ट्रिंग के अंत से स्ट्रिप व्हाट्सएप (या अन्य अक्षर)

ltrim() - एक स्ट्रिंग की शुरुआत से स्ट्रिप व्हाट्सएप (या अन्य वर्ण)

trim() - एक स्ट्रिंग की शुरुआत और अंत से स्ट्रिप व्हाट्सएप (या अन्य अक्षर)

स्ट्रिंग के अंत से विशेष वर्णों को हटाने के लिए या स्ट्रिंग में अंत में गतिशील विशेष वर्ण होते हैं, हम regex द्वारा कर सकते हैं।

preg_replace - एक नियमित अभिव्यक्ति खोज और प्रतिस्थापित करें

$regex = "/\.$/";             //to replace the single dot at the end
$regex = "/\.+$/";            //to replace multiple dots at the end
$regex = "/[.*?!@#$&-_ ]+$/"; //to replace all special characters (.*?!@#$&-_) from the end

$result = preg_replace($regex, "", $string);

$regex = "/[.*?!@#$&-_ ]+$/";स्ट्रिंग को लागू किए जाने पर समझने के लिए यहां कुछ उदाहरण दिए गए हैं

$string = "Some text........"; // $resul -> "Some text";
$string = "Some text.????";    // $resul -> "Some text";
$string = "Some text!!!";      // $resul -> "Some text";
$string = "Some text..!???";   // $resul -> "Some text";

मुझे उम्मीद है कि यह आपके लिए उपयोगी है।

धन्यवाद :-)


2

मुझे पता है कि प्रश्न कुछ पुराना है, लेकिन हो सकता है कि मेरा उत्तर किसी के लिए उपयोगी हो।

$string = "something here..........";

ltrim अग्रणी डॉट्स को हटा देगा। उदाहरण के लिए:-ltrim($string, ".")

rtrim rtrim($string, ".") अनुगामी डॉट्स को हटा देगा।

ट्रिम trim($string, ".") ट्रेलिंग और प्रमुख डॉट्स को हटा देगा।

आप इसे regex द्वारा भी कर सकते हैं

प्रीग_रेप्ले को अंत में डॉट / डॉट्स को हटाने के लिए इस्तेमाल किया जा सकता है

$regex = "/\.$/"; //to replace single dot at the end
$regex = "/\.+$/"; //to replace multiple dots at the end
preg_replace($regex, "", $string);

मुझे उम्मीद है कि यह आपके लिए उपयोगी है।


2

अंतिम चरित्र को विभिन्न तरीकों से हटाया जा सकता है, यहां कुछ हैं

  • rtrim()
$output = rtrim($string, '.');
  • Regular Expression
preg_replace("/\.$/", "", $string);
  • substr() / mb_substr()
echo mb_substr($string, 0, -1);

echo substr(trim($string), 0, -1);
  • substr() साथ में trim()
echo substr(trim($string), 0, -1);

0

के संयोजन का प्रयोग strrpos और substr पिछले अवधि चरित्र की स्थिति और सभी अन्य पात्रों बरकरार छोड़ने निकालने के लिए:

$string = "something here.";

$pos = strrpos($string,'.');
if($pos !== false){
  $output = substr($string,0,$pos);
} else {
  $output = $string;
}

var_dump($output);

// $output = 'something here';

0

आप php के rtrim फ़ंक्शन का उपयोग कर सकते हैं जो आपको अंतिम स्थिति में मौजूद डेटा को ट्रिम करने की अनुमति देता है।

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

$trim_variable= rtrim($any_string, '.');

सबसे सरल और तेज़ तरीका !!


-1

उदाहरण:

    $columns = array('col1'=> 'value1', 'col2' => '2', 'col3' => '3', 'col4' => 'value4');

    echo "Total no of elements: ".count($columns);
    echo "<br>";
    echo "----------------------------------------------<br />";

    $keys = "";
    $values = "";
    foreach($columns as $x=>$x_value)
    {
      echo "Key=" . $x . ", Value=" . $x_value;
      $keys = $keys."'".$x."',";
      $values = $values."'".$x_value."',";
      echo "<br>";
    }


    echo "----------------------Before------------------------<br />";

    echo $keys;
    echo "<br />";
    echo $values;
    echo "<br />";

    $keys   = rtrim($keys, ",");
    $values = rtrim($values, ",");
    echo "<br />";

    echo "-----------------------After-----------------------<br />";
    echo $keys;
    echo "<br />";
    echo $values;

?>

आउटपुट:

Total no of elements: 4
----------------------------------------------
Key=col1, Value=value1
Key=col2, Value=2
Key=col3, Value=3
Key=col4, Value=value4
----------------------Before------------------------
'col1','col2','col3','col4',
'value1','2','3','value4',

-----------------------After-----------------------
'col1','col2','col3','col4'
'value1','2','3','value4'

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