어제 WordPress 테마 정보 API를 작성할 때 style.css 안의 영어 내용을 바꾸기 위해 문자열을 치환하는 str_replace() 함수를 사용했습니다. 처음에는 연속으로 열 개가 넘는 str_replace() 함수를 사용해서야 치환할 수 있었습니다.
나중에 어떤 고수가 str_replace() 함수의 매개변수를 배열로 설정하면 순서에 따라 일괄 치환할 수 있다고 알려주었습니다. 이후 직접 시도해 보니 정말 str_replace() 함수 하나만으로 해결할 수 있었고, 아래에서 제 경험을 공유하겠습니다.
str_replace()
아래에서는 주로 str_replace() 함수의 네 가지 경우를 설명하겠습니다.
치환될 값에만 배열 사용
예시
<?php
echo str_replace(array('w','m'),'x','www.ikxin.com');
?>
출력: xxx.ikxin.cox
함수가 배열에 있는 각 문자열을 순서대로 치환하고, 치환된 문자열을 반환하는 것을 알 수 있습니다.
치환 값에만 배열 사용
예시
<?php
echo str_replace('i',array('w','m'),"www.ikxin.com");
?>
출력: www.ArraykxArrayn.com
이 치환은 비교적 흥미롭습니다. 두 번째 매개변수에만 배열을 사용하면 함수는 이를 문자열 Array로 취급하여 모든 치환될 값을 Array로 바꿉니다.
치환될 매개변수에만 배열 사용
예시
<?php
echo str_replace('w','n',array('www.ikxin.com','www.baidu.com'));
?>
이 문장의 실행 결과는 배열을 반환하며, 전달된 두 문자열을 각각 치환한 결과입니다.
치환 값과 치환될 값에 배열 사용
예시
<?php
echo str_replace(array("m","w"),array("h","n"),"www.ikxin.com");
?>
출력: nnn.ikxin.coh
앞의 두 매개변수를 모두 배열로 사용하면 함수는 배열의 각 항목 문자열을 치환합니다. 따라서 치환될 값의 첫 번째 항목은 치환 값의 첫 번째 항목으로 치환되고, 나머지도 같은 방식으로 처리됩니다.
