Bagaimana cara menghapus semua karakter tertentu di akhir string di PHP?

87

Bagaimana cara menghapus karakter terakhir hanya jika itu adalah titik?

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

Jawaban:

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

(Referensi: rtrim di PHP.net )

Alix Axel
sumber
1
@Alix: ya lupa tentang rtrimjauh lebih mudah ...!
RageZ
2
Mungkin tidak diinginkan untuk menghapus ... (elipsis):
mys
2
@OndrejIvanic: Anda punya untuk itu. Jika Anda menghapus titik terakhir, dan sisanya masih berupa titik, judul pertanyaan tidak akan masuk akal, bukan?
Alix Axel
29

menggunakan rtrim menggantikan semua "." pada akhirnya, bukan hanya karakter terakhir

$string = "something here..";
echo preg_replace("/\.$/","",$string);
anjing hantu74
sumber
3
Saya menduga OP ingin menghapus semua '.' pada akhirnya, jika tidak, mengapa hanya menghapus satu? ;)
Tor Valamo
2
ya, saya juga menebaknya. hanya mengikuti pertanyaan sedekat mungkin.
ghostdog74
2
Ini jauh lebih baik, terlalu banyak orang yang tidak menyadari bahwa menggunakan character_maskin trimpada dasarnya menghapus semua karakter di seluruh string
Brock Hensley
8

Untuk menghapus karakter terakhir hanya jika itu adalah titik dan tidak beralih ke preg_replacekita bisa memperlakukan string sebagai array karakter dan menghapus karakter terakhir jika itu adalah titik.

if ($str[strlen($str)-1]==='.')
  $str=substr($str, 0, -1);
BERSAMA
sumber
2
Ini adalah jawaban yang benar karena yang lain akan menghapus semua karakter yang tertinggal, tidak hanya yang terakhir. Tetapi Anda harus menggunakan ===alih-alih ==juga memeriksa kesetaraan jenis
padawanTony
3

Saya tahu pertanyaannya sudah terpecahkan. Tapi mungkin jawaban ini akan membantu seseorang.

rtrim() - Hapus spasi (atau karakter lain) dari akhir string

ltrim() - Hapus spasi (atau karakter lain) dari awal string

trim() - Hapus spasi (atau karakter lain) dari awal dan akhir string

Untuk menghapus karakter khusus dari ujung string atau Apakah string berisi karakter khusus dinamis di akhir, kita dapat melakukannya dengan regex.

preg_replace - Lakukan pencarian ekspresi reguler dan ganti

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

Berikut adalah beberapa contoh untuk dipahami ketika $regex = "/[.*?!@#$&-_ ]+$/";diterapkan pada string

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

Saya harap ini membantu Anda.

Terima kasih :-)

Nishal KR
sumber
2

Saya tahu pertanyaannya adalah beberapa tentang apa yang tua tetapi mungkin jawaban saya bermanfaat bagi seseorang.

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

ltrim akan menghapus titik-titik di depannya . sebagai contoh:-ltrim($string, ".")

rtrim rtrim($string, ".") akan menghapus titik-titik yang tertinggal.

trim trim($string, ".") akan menghapus titik-titik di belakang dan di depan.

Anda juga dapat melakukan ini dengan regex

preg_replace akan menghapus dapat digunakan untuk menghapus titik / titik di akhir

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

Saya harap ini membantu Anda.

Shahbaz
sumber
2

Karakter terakhir dapat dihilangkan dengan berbagai cara, Ini beberapa

  • 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() dengan trim()
echo substr(trim($string), 0, -1);
Nishad Up
sumber
0

Gunakan kombinasi strrpos dan substr untuk mendapatkan posisi karakter titik terakhir dan hapus semua karakter lainnya tetap utuh:

$string = "something here.";

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

var_dump($output);

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

Anda dapat menggunakan fungsi rtrim dari php yang memungkinkan Anda untuk memangkas data yang ada di posisi terakhir.

Sebagai contoh :

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

Cara paling sederhana dan cepat !!

Moiz Shafqat Husain
sumber
-1

Contoh:

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

?>

Keluaran:

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'
Chittaranjan Sethi
sumber
Untuk ini, Anda hanya dapat menggunakan join (",", $ array)
Nebulosar