web-dev-qa-db-fra.com

PHP - Comment supprimer tous les caractères spécifiques à la fin d'une chaîne?

Comment supprimer le dernier caractère uniquement s'il s'agit d'un point?

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

(Référence: rtrim sur PHP.net )

135
Alix Axel

utiliser rtrim remplace tout "." à la fin, pas seulement le dernier caractère

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

Pour supprimer le dernier caractère uniquement s'il s'agit d'un point et sans recourir à preg_replace, nous pouvons simplement traiter la chaîne comme un tableau de caractères et supprimer le dernier caractère s'il s'agit d'un point.

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

Je sais que la question est quel âge, mais peut-être que ma réponse est utile pour quelqu'un.

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

ltrim supprimerait les points principaux. par exemple: - ltrim($string, ".") 

rtrimrtrim($string, ".") enlèverait les points de fuite.

trimtrim($string, ".") enlèverait les points suivants et suivants.

vous pouvez aussi le faire par regex

preg_replace remove pourrait être utilisé pour supprimer des points à la fin

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

J'espère que cela vous sera utile.

2
Shahbaz

Vous pouvez utiliser la fonction rtrim de php qui vous permet de couper les données qui existent en dernière position.

Par exemple : 

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

Manière la plus simple et la plus rapide!

0
Moiz Shafqat Husain

Le dernier caractère peut être supprimé de différentes manières. Voici quelques exemples.

  • rtrim ():

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

  • Expression régulière

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

  • substr ()/mb_substr ()

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

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

  • substr () avec trim ()

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

0
Nishad Up

Je sais que la question est résolue. Mais peut-être que cette réponse sera utile pour quelqu'un.

rtrim() - Supprime les espaces (ou autres caractères) de la fin d'une chaîne

ltrim() - Efface les espaces (ou autres caractères) à partir du début d'une chaîne

trim() - Supprime les espaces (ou autres caractères) du début et de la fin d'une chaîne

Pour supprimer les caractères spéciaux à la fin de la chaîne ou si la chaîne contient des caractères spéciaux dynamiques à la fin, nous pouvons le faire par regex.

preg_replace - Effectue une recherche par expression régulière et la remplace

_$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);
_

Voici un exemple à comprendre lorsque _$regex = "/[.*?!@#$&-_ ]+$/";_ est appliqué à une chaîne

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

J'espère que cela vous sera utile.

Merci :-)

0
Nishal K.R

Utilisez une combinaison de strrpos et substr pour obtenir la position du dernier caractère de la période et supprimez-la en laissant tous les autres caractères intacts:

$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