Helper 함수 Slug
Str::slug('대한 독립 만세', '-')
아래와 같이 코드를 작성할 경우 한글이 출력되지 않는다.
그 이유는 문자열을 ASCII로 변환하기 때문이다.
한글은 유니코드 이기 때문에 ASCII 로 변환된 Slug 에서는 해당 이슈를 처리하지 못한다.
Route::get('/', function (){
return \Illuminate\Support\Str::slug("대한 독립 만세", '-');
});
Str::slug('대한 독립 만세', '-', 'ko')
Slug 에는 3개의 인자를 작성해야한다.
Str::slug('문자', '바꿀거', '언어');
하지만 문자를 ASCII 로 변환하기 때문이 한글은 출력되지 않는다.
하지만 PHP ext-intl 익스텐션을 통해 한글이 출력되지 않는 대신 한글 발음을 영어 단어로 음차하는 방법으로 처리해준다.
Route::get('/', function (){
return \Illuminate\Support\Str::slug("대한 독립 만세", '-', 'ko');
});
PHP preg_replace 메소드 이용
원하는 결과를 출력하기 위해 아래 방법을 이용했다.
정규식을 통해 영문, 한글, 숫자를 제외하고는 문자를 없애준다. 또한 공백은 -
으로 변경해준다.
Route::get('/', function (){
$title = trim("대한 독립 만세 ㄱ # $@# 89&$#@ ㅁㄴㅇ ");
return strtolower(preg_replace('/[^a-zA-Z가-힣0-9]+/', '-', $title));
});
'Programming > $_머니 (PHP)' 카테고리의 다른 글
[Homestead] Laravel - Unable to mount one of your folders. Please check your folders in Homestead.yaml (0) | 2024.02.21 |
---|---|
[Homestead] - Laravel vagrant php7.4-fpm.service not working (0) | 2024.02.21 |
[PHP - Laravel] 라라벨 원하는 버전 설치하기 (버전별 관리) (0) | 2024.02.09 |
Mac PHP 버전 관리하기 (brew-php-switcher) (0) | 2024.02.09 |
[PHP 기초] - sprintf 을 이용하여 HTML 태그 만들어내기 (0) | 2024.02.09 |