wake-up-neo.com

PHP - Wie entferne ich alle spezifischen Zeichen am Ende einer Zeichenfolge?

Wie entferne ich das letzte Zeichen nur, wenn es sich um einen Punkt handelt?

$string = "something here.";
$output = 'something here';
77
ggggggggg
$output = rtrim($string, '.');

(Referenz: rtrim auf PHP.net )

135
Alix Axel

mit rtrim werden alle "." am Ende nicht nur das letzte Zeichen

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

Um das letzte Zeichen nur zu entfernen, wenn es sich um einen Punkt handelt und nicht auf preg_replace zurückgegriffen wird, können wir die Zeichenfolge einfach als ein Array von char behandeln und das letzte Zeichen entfernen, wenn es sich um einen Punkt handelt.

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

Ich weiß, die Frage ist etwas alt, aber vielleicht ist meine Antwort für jemanden hilfreich.

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

ltrim würde führende Punkte entfernen. zum Beispiel: - ltrim($string, ".") 

rtrimrtrim($string, ".") würde nachfolgende Punkte entfernen.

trimtrim($string, ".") würde nachfolgende und führende Punkte entfernen.

sie können dies auch durch Regex tun

preg_replace would remove kann zum Entfernen von Punkten/Punkten am Ende verwendet werden

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

Ich hoffe es ist hilfreich für dich.

2
Shahbaz

Sie können die RTRIM-Funktion von PHP verwenden, mit der Sie die an der letzten Position vorhandenen Daten trimmen können.

Zum Beispiel : 

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

Einfachste und schnellste Methode !!

0

Das letzte Zeichen kann auf verschiedene Arten entfernt werden

  • rtrim ():

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

  • Regulären Ausdruck

    preg_replace ("/.$/", "", $ string);

  • substr ()/mb_substr ()

    echo mb_substr ($ string, 0, -1);

    echo substr (trim ($ string), 0, -1);

  • substr () mit trim ()

    echo substr (trim ($ string), 0, -1);

0
Nishad Up

Ich weiß, dass die Frage gelöst ist. Aber vielleicht ist diese Antwort für jemanden hilfreich.

rtrim() - Leerzeichen (oder andere Zeichen) am Ende einer Zeichenfolge entfernen

ltrim() - Leerzeichen (oder andere Zeichen) am Anfang einer Zeichenfolge entfernen

trim() - Leerzeichen (oder andere Zeichen) am Anfang und Ende einer Zeichenfolge entfernen

Zum Entfernen von Sonderzeichen am Ende der Zeichenfolge oder zum Enthalten der Zeichenfolge dynamische Sonderzeichen am Ende können wir Regex verwenden.

preg_replace - Führen Sie ein Suchen und Ersetzen mit regulären Ausdrücken durch

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

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

Hier ist ein Beispiel, um zu verstehen, wann _$regex = "/[.*[email protected]#$&-_ ]+$/";_ auf Zeichenfolge angewendet wird

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

Ich hoffe es ist hilfreich für dich.

Vielen Dank :-)

0
Nishal K.R

Verwenden Sie eine Kombination aus strrpos und substr , um die Position des letzten Punktes zu ermitteln und es zu entfernen, wobei alle anderen Zeichen intakt bleiben:

$string = "something here.";

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

var_dump($output);

// $output = 'something here';
0
GreensterRox