web-dev-qa-db-ja.com

PHP-文字列の最後にある特定の文字をすべて削除する方法は?

ピリオドの場合にのみ最後の文字を削除するにはどうすればよいですか?

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

(参照: PHP.netのrtrim

143
Alix Axel

rtrimを使用すると、すべての「。」が置き換えられます。最後の文字だけでなく、最後に

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

最後の文字がピリオドであり、preg_replaceに頼らない場合にのみ最後の文字を削除するには、文字列をcharの配列として扱い、ドットの場合は最後の文字を削除します。

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

私は質問が何年か古いことを知っていますが、私の答えは誰かに役立つかもしれません。

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

ltrim は、先頭のドットを削除します。例えば:-ltrim($string, ".")

rtrimrtrim($string, ".")は末尾のドットを削除します。

trimtrim($string, ".")は、末尾と先頭のドットを削除します。

また、正規表現でこれを行うことができます

preg_replace removeは、末尾のドットを削除するために使用できます

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

あなたのお役に立てば幸いです。

2
Shahbaz

Phpのrtrim関数を使用すると、最後の位置にあるデータをトリミングできます。

例えば ​​:

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

最も簡単で断食した方法!!

0

最後の文字はさまざまな方法で削除できます。ここにいくつかあります

  • rtrim():

    $ output = rtrim($ string、 '。');

  • 正規表現

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

  • substr()/ mb_substr()

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

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

  • substr()with trim()

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

0
Nishad Up

私は質問が解決されたことを知っています。しかし、おそらくこの答えは誰かに役立つでしょう。

rtrim() -文字列の末尾から空白(またはその他の文字)を削除します

ltrim() -文字列の先頭から空白(または他の文字)を削除します

trim() -文字列の先頭と末尾から空白(またはその他の文字)を削除します

文字列の末尾から特殊文字を削除したり、文字列の末尾に動的な特殊文字が含まれている場合は、正規表現で行うことができます。

preg_replace -正規表現検索を実行して置換

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

$regex = "/[.*?!@#$&-_ ]+$/";は文字列に適用されます

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

あなたのお役に立てば幸いです。

ありがとう:-)

0
Nishal K.R

strrpossubstr の組み合わせを使用して、最後のピリオド文字の位置を取得し、他のすべての文字をそのまま残して削除します。

$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