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

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

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



답변

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

(참조 : PHP.net의 rtrim )


답변

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

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


답변

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

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


답변

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

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

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

감사 🙂


답변

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

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

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


답변

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

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


답변

strrpossubstr 의 조합을 사용 하여 마지막 마침표 문자의 위치를 ​​얻고 다른 모든 문자는 그대로두고 제거합니다.

$string = "something here.";

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

var_dump($output);

// $output = 'something here';