PHP에서 문자열 끝에있는 모든 특정 문자를 제거하려면 어떻게합니까?


87

마침표 인 경우에만 마지막 문자를 제거하려면 어떻게합니까?

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

답변:


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

(참조 : PHP.net의 rtrim )


1
@Alix : 네 rtrim훨씬 더 쉽게 잊어 버렸습니다 ...!
RageZ 2010 년

2
제거하는 것이 원치 않을 수 있습니다 ... (줄임표) :
mys

2
@OndrejIvanic : 당신은 그것을 위해 있습니다. 마지막 점을 제거하고 나머지 점이 여전히 점인 경우 질문 제목이 이해가되지 않겠습니까?
Alix Axel

29

rtrim을 사용하면 모든 "." 마지막 캐릭터뿐만 아니라

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

3
OP가 모든 '.'를 제거하고 싶어한다고 생각합니다. 마지막에, 그렇지 않으면 왜 하나만 제거합니까? ;)
Tor Valamo

2
네, 저도 추측하고 있습니다. 가능한 한 가깝게 질문을 따르십시오.
ghostdog74 2010 년

2
이것은 너무 많은 사람들이 사용 모르고, 훨씬 더 character_masktrim기본적으로 전체 문자열의 문자의 인스턴스 제거
브록 헨슬리

8

마침표에 의존하지 않고 마지막 문자를 제거하려면 preg_replace문자열을 문자 배열로 취급하고 점이면 최종 문자를 제거하면됩니다.

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

2
다른 문자는 마지막 문자뿐만 아니라 모든 후행 문자를 삭제하므로 이것은 정답입니다. 하지만 당신은 사용해야하는 ===대신에 ==또한 유형의 평등을 확인하는
padawanTony

3

나는 질문이 해결 된 것을 압니다. 그러나 아마도이 대답은 누군가에게 도움이 될 것입니다.

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

도움이 되었기를 바랍니다.

감사 :-)


2

나는 질문이 어떤 오래된 것인지 알고 있지만 내 대답이 누군가에게 도움이 될 수 있습니다.

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

ltrim 은 선행 점을 제거합니다. 예 :-ltrim($string, ".")

rtrim rtrim($string, ".") 은 후행 점을 제거합니다.

트림 trim($string, ".") 은 후행 및 선행 점을 제거합니다.

정규식으로도 할 수 있습니다.

preg_replace would remove는 끝에 점 / 점을 제거하는 데 사용할 수 있습니다.

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

도움이 되었기를 바랍니다.


2

마지막 문자는 다른 방법으로 제거 할 수 있습니다.

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

0

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

마지막 위치에있는 데이터를 다듬을 수있는 php의 rtrim 기능을 사용할 수 있습니다.

예 :

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

가장 간단하고 빠른 방법 !!


-1

예:

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

이를 위해 그냥 가입 사용할 수 있습니다 ( ",", $ 배열)
Nebulosar
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.