program story

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

inputbox 2020. 10. 7. 07:37
반응형

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

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

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

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


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

$string = "something here.";

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

var_dump($output);

// $output = 'something here';

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

예 :

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

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


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

  • rtrim () :

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

  • 정규식

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

  • substr () / mb_substr ()

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

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

  • trim ()을 사용하는 substr ()

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

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

감사 :-)


예:

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

참고 URL : https://stackoverflow.com/questions/2053830/how-do-i-remove-all-specific-characters-at-the-end-of-a-string-in-php

반응형