반응형
Web Development · PHP str_replace
PHP str_replace —
문자열에서 특정 부분을 다른 것으로 교체
FONT 태그의 size="3" → size="5"로 일괄 변경
시작 오늘 분석할 코드
<?php $html = '<FONT size="3">Hello!</FONT><BR>'; $search = 'size="3"'; $replace = 'size="5"'; $result = str_replace($search, $replace, $html); // 폰트 사이즈 3을 5로 일괄 교체 ?>
$result에는 '<FONT size="5">Hello!</FONT><BR>'이 들어간다.
용어 용어 정리
str_replace()문자열에서 부분을 찾아 다른 것으로 교체
검색어 (search)찾을 부분 — 문자열 또는 배열
대체어 (replace)바꿀 새 부분
대상 (subject)탐색할 원본 문자열
모든 발생 교체처음 1번이 아닌 모든 위치
대소문자 구분기본은 구분 — str_ireplace는 무시
반환값새 문자열 (원본 유지)
vs preg_replace정규식 필요 시 preg_replace
1 매개변수 순서
str_replace(찾을 것, 바꿀 것, 대상) // $search $replace $subject
※ 자바스크립트의
replace와 다르다 (JS는 "abc".replace("a", "b")처럼 대상이 처음). PHP는 대상이 마지막.2 모든 발생을 교체 — 별도 플래그 불필요
str_replace("a", "X", "banana"); // "bXnXnX" ← 모든 'a' 한 번에
JS의 "banana".replace("a", "X")는 첫 번째만 바꾸지만, PHP는 자동으로 모두 교체한다.
3 배열 매개변수 — 다중 교체
// 한 번에 여러 검색-교체 str_replace( ["a", "b", "c"], ["X", "Y", "Z"], "abcabc" ); // → "XYZXYZ" // 모두 같은 값으로 (단일 replace) str_replace(["dog", "cat"], "ANIMAL", "dog and cat"); // → "ANIMAL and ANIMAL"
반응형
4 대상이 배열인 경우
$arr = ["hello world", "hello PHP"]; str_replace("hello", "안녕", $arr); // → ["안녕 world", "안녕 PHP"] ← 배열의 각 원소에 적용
5 자주 하는 실수
| 실수 | 증상 | 해결 |
|---|---|---|
str_replace($html, $search, $replace) |
매개변수 순서 잘못 → 결과 이상 | (찾을, 바꿀, 대상) 순서 |
| 대소문자 무시 기대 | "Hello"는 "hello"와 다름 | str_ireplace 사용 |
| 패턴(정규식) 사용 의도 | str_replace는 리터럴만 | preg_replace 사용 |
| 치환 횟수 알고 싶음 | 4번째 매개변수 (참조) | str_replace(...,..., ..., $count) |
| 치환 후 또 치환되는 연쇄 효과 | 의도와 다른 결과 | 배열로 한 번에 처리 |
6 활용 예
// 줄바꿈 통일 str_replace(["\r\n", "\r"], "\n", $text); // 마크다운 → HTML 일부 변환 str_replace(["**", "__"], ["<b>", "</b>"], $md); // 변수 치환 (간단한 템플릿) str_replace(["{name}", "{date}"], [$name, $date], $template);
핵심 한 줄 요약
str_replace()문자열의 특정 부분을 일괄 교체
매개변수(찾을, 바꿀, 대상) 순서
모두 교체자동으로 모든 발생 위치 처리
배열 가능여러 검색-교체 한 번에
대소문자구분 — 무시는 str_ireplace
정규식 필요preg_replace 사용
불변원본은 안 바뀜 — 새 문자열 반환
반응형
'php' 카테고리의 다른 글
| PHP htmlspecialchars — HTML 특수문자 이스케이프 + XSS 방어 완전 정리 (1) | 2026.06.15 |
|---|---|
| PHP strip_tags — HTML 태그 제거 완전 정리 (0) | 2026.06.15 |
| PHP trim — 문자열 양끝 공백 제거 완전 정리 (0) | 2026.06.15 |
| PHP substr — 문자열 일부 자르기 완전 정리 (0) | 2026.06.15 |
| PHP list() 재확인 — 배열을 변수로 분해 완전 정리 (0) | 2026.06.15 |
왕진 블로그

댓글