PHP – Как удалить все конкретные символы в конце строки?

Как удалить последний символ только в том случае, если это период?

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

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

(Ссылка: rtrim на PHP.net )

использование rtrim заменяет все "." в конце, а не только последний символ

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

Чтобы удалить последний символ, только если это период и не прибегает к preg_replace мы можем просто обработать строку как массив символов и удалить конечный символ, если это точка.

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

Я знаю, что вопрос – это какой-то старый, но может быть мой ответ полезен для кого-то.

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

ltrim удалит ведущие точки. например: – ltrim($string, ".")

rtrim rtrim($string, ".") удалит конечные точки.

trim($string, ".") удаляет конечные и ведущие точки.

вы также можете сделать это с помощью регулярного выражения

preg_replace будет удаляться, можно использовать для удаления точек / точек в конце

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

Надеюсь, это поможет вам.

Вы можете использовать функцию rtrim php, которая позволяет обрезать данные, существующие в последней позиции.

Например :

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

Самый простой и быстрый путь!

Пример:

  $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' 

Используйте комбинацию 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';