PHP에서 문자열의 모든 공백을 하이픈(-)으로 바꾸고 동시에 소문자로 변환하고 싶다면 strtolower()과 str_replace() 함수를 함께 사용하면 됩니다.
strtolower() 함수는 문자열 전체를 소문자로 변환하며, 그 반환값은 str_replace() 함수의 세 번째 인자(즉, 대상 문자열이 들어가는 자리)에 그대로 전달할 수 있습니다. str_replace() 함수는 특정 문자나 문자 집합을 다른 문자 또는 문자열로 치환할 때 사용됩니다.
예제 코드
$str = 'hello have a good day everyone';
echo str_replace(' ', '-', strtolower($str));실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
hello-have-a-good-day-everyone
코드 설명
1. strtolower($str): 입력된 문자열 'hello have a good day everyone'을 모두 소문자로 변환합니다. 이미 소문자인 경우에도 안전하게 처리됩니다.
2. str_replace(' ', '-', ...): 소문자로 변환된 문자열에서 모든 공백(' ')을 찾아 하이픈('-')으로 교체합니다.
참고 사항
만약 여러 개의 연속된 공백도 하나의 하이픈으로 처리하고 싶다면 preg_replace('/\s+/', '-', strtolower($str))처럼 정규표현식을 활용하는 방법도 있습니다. 또한 URL 슬러그(slug)를 만들 때는 알파벳과 숫자 외의 특수문자까지 제거하는 추가 처리를 고려할 수 있습니다.