Làm cách nào để xóa tất cả các ký tự cụ thể ở cuối chuỗi trong PHP?


86

Làm cách nào để xóa ký tự cuối cùng chỉ khi đó là dấu chấm?

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

Câu trả lời:


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

(Tham khảo: rtrim trên PHP.net )


1
@Alix: vâng quên rtrimdễ dàng hơn rất nhiều ...!
RageZ

2
Có thể không mong muốn xóa ... (elipsis):
mys

2
@OndrejIvanic: Bạn có điều đó. Nếu bạn loại bỏ dấu chấm cuối cùng và dấu chấm còn lại vẫn là dấu chấm, tiêu đề câu hỏi sẽ không có ý nghĩa nhiều phải không?
Alix Axel

29

sử dụng rtrim thay thế tất cả "." ở cuối, không chỉ là ký tự cuối cùng

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

3
Tôi đoán OP muốn xóa tất cả '.' ở cuối, nếu không, tại sao chỉ xóa một? ;)
Tor Valamo

2
vâng, tôi cũng đoán điều đó. chỉ theo sát câu hỏi nhất có thể.
ghostdog 74

2
Đây là tốt hơn nhiều, quá nhiều người không nhận ra sử dụng character_masktrong trimvề cơ bản loại bỏ bất kỳ trường hợp của nhân vật trong toàn bộ chuỗi
Brock Hensley

8

Để loại bỏ ký tự cuối cùng chỉ preg_replacekhi đó là một dấu chấm và không sử dụng đến chúng ta có thể coi chuỗi như một mảng ký tự và loại bỏ ký tự cuối cùng nếu nó là một dấu chấm.

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

2
Đây là câu trả lời chính xác vì những người khác sẽ xóa tất cả các ký tự ở cuối chứ không chỉ ký tự cuối cùng. Nhưng bạn nên sử dụng ===thay vì ==cũng để kiểm tra các loại bình đẳng
padawanTony

3

Tôi biết câu hỏi đã được giải quyết. Nhưng có lẽ câu trả lời này sẽ hữu ích cho ai đó.

rtrim() - Bỏ khoảng trắng (hoặc các ký tự khác) khỏi phần cuối của một chuỗi

ltrim() - Tách khoảng trắng (hoặc các ký tự khác) khỏi đầu chuỗi

trim() - Tách khoảng trắng (hoặc các ký tự khác) từ đầu và cuối chuỗi

Đối với việc loại bỏ các ký tự đặc biệt ở cuối chuỗi hoặc Là chuỗi có chứa các ký tự đặc biệt động ở cuối, chúng ta có thể thực hiện bằng regex.

preg_replace - Thực hiện tìm kiếm và thay thế biểu thức chính quy

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

Dưới đây là một số ví dụ để hiểu khi nào $regex = "/[.*?!@#$&-_ ]+$/";được áp dụng cho chuỗi

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

Tôi hy vọng nó là hữu ích cho bạn.

Cảm ơn :-)


2

Tôi biết câu hỏi là một số câu hỏi cũ nhưng có thể câu trả lời của tôi là hữu ích cho ai đó.

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

ltrim sẽ xóa các dấu chấm ở đầu. ví dụ:-ltrim($string, ".")

rtrim rtrim($string, ".") sẽ loại bỏ các dấu chấm ở cuối.

trim trim($string, ".") sẽ loại bỏ các dấu chấm ở cuối và đầu.

bạn cũng có thể làm điều này bằng regex

Preg_replace sẽ loại bỏ có thể được sử dụng để loại bỏ dấu chấm / chấm ở cuối

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

Tôi hy vọng nó là hữu ích cho bạn.


2

Ký tự cuối cùng có thể được xóa theo nhiều cách khác nhau, Dưới đây là một số

  • 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() với trim()
echo substr(trim($string), 0, -1);

0

Sử dụng kết hợp strrpossubstr để lấy vị trí của ký tự dấu chấm cuối cùng và xóa nó, giữ nguyên tất cả các ký tự khác:

$string = "something here.";

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

var_dump($output);

// $output = 'something here';

0

Bạn có thể sử dụng hàm rtrim của php cho phép bạn cắt bớt dữ liệu tồn tại ở vị trí cuối cùng.

Ví dụ :

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

Cách đơn giản và nhanh chóng !!


-1

Thí dụ:

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

?>

Đầu ra:

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'

Đối với điều này bạn chỉ có thể sử dụng tham gia ( "", $ mảng)
Nebulosar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.