본문 바로가기

비개발자의 개발 일지

현장 팀장에서 수출 ERP까지 — AI와 함께 시스템을 만든 기록

시리즈 보기
php

PHP str_replace — 문자열 찾아 바꾸기 완전 정리

by 왕진 2026. 6. 15.
반응형

 

 

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 사용
불변원본은 안 바뀜 — 새 문자열 반환
반응형

댓글