Strings strtr

(PHP 4, PHP 5, PHP 7, PHP 8)

strtr — 문자 번역 또는 부분 문자열 바꾸기


설명

strtr(string $string, string $from, string $to): string

대체 서명(명명된 인수에서는 지원되지 않음):

strtr(string $string, array $replace_pairs): string

세 개의 인수가 주어지면 이 함수는 from의 모든 (싱글바이트) 문자가 to의 해당 문자로 변환된 string의 복사본을 반환합니다. 즉, $from[$n]의 모든 발생은 다음으로 대체됩니다. $to[$n], 여기서 $n은 두 인수 모두에서 유효한 오프셋입니다.

fromto의 길이가 다른 경우 둘 중 더 긴 문자의 추가 문자는 무시됩니다. string의 길이는 반환 값과 동일합니다.

두 개의 인수가 주어지면 두 번째 인수는 array('from' => 'to', ...) 형식의 배열이어야 합니다. 반환 값은 배열 키의 모든 항목이 해당 값으로 대체된 문자열입니다. 가장 긴 키가 먼저 시도됩니다. 부분 문자열이 교체되면 새 값은 다시 검색되지 않습니다.

이 경우 빈 키가 없다면 키와 값은 임의의 길이를 가질 수 있습니다. 또한 반환 값의 길이는 string의 길이와 다를 수 있습니다. 그러나 이 기능은 모든 키의 크기가 같을 때 가장 효율적입니다.


매개변수

string
번역 중인 문자열입니다.
from
The string being translated to to.
to
The string replacing from.
replace_pairs
replace_pairs 매개변수는 tofrom 대신에 사용될 수 있으며, 이 경우 array('from' => 'to', ...) 형식의 배열입니다.

replace_pairs에 빈 문자열("")인 키가 포함되어 있으면 요소가 무시됩니다. 이 경우 PHP 8.0.0부터 E_WARNING이 발생합니다.


반환 값

번역된 문자열을 반환합니다.


Examples

예제 #1 strtr() 예제

                  
<?php
//In this form, strtr() does byte-by-byte translation
//Therefore, we are assuming a single-byte encoding here:
$addr = strtr($addr, "äåö", "aao");
?>
                  
                

다음 예제는 두 개의 인수만 사용하여 호출될 때 strtr()의 동작을 보여줍니다. 대체 항목의 기본 설정("h"는 더 긴 일치 항목이 있기 때문에 선택되지 않음)과 대체된 텍스트가 다시 검색되지 않는 방식에 유의하십시오.

예제 #2 두 개의 인수가 있는 strtr() 예제

                  
<?php
$trans = array("h" => "-", "hello" => "hi", "hi" => "hello");
echo strtr("hi all, I said hello", $trans);
?>
                  
                

위의 예는 다음을 출력합니다.

hello all, I said hi
                

두 가지 행동 양식은 실질적으로 다릅니다. 세 개의 인수로 strtr()은 바이트를 대체합니다. 2로 더 긴 부분 문자열을 대체할 수 있습니다.

예제 #3 행동 비교

                  
<?php
echo strtr("baab", "ab", "01"),"\n";

$trans = array("ab" => "01");
echo strtr("baab", $trans);
?>
                  
                

위의 예는 다음을 출력합니다.

1001
ba01
                

기타

  • str_replace() - 검색 문자열의 모든 항목을 대체 문자열로 바꿉니다.
  • preg_replace() - 정규식 검색 및 바꾸기 수행