PHP로 폴더의 파일 이름을 일괄 적으로 변경하려고합니다. 악센트 부호가있는 문자에 문제가 있지만 대부분 작동합니다.PHP 파일 이름 인코딩 변환 문제
악센트 부호가있는 파일 이름의 예는 ÅRE_GRÖN.JPG
입니다.
해당 파일의 이름을 ARE_GRON.JPG
으로 변경하고 싶습니다. 내가 파일을 읽을 경우,이 같은
:
<?php
$path = __DIR__;
$dir_handle = opendir($path);
while ($file = readdir($dir_handle)) {
echo $file . "\n";
}
closedir($dir_handle);
... 그리고 페이지가 표시 AÌŠRE_GRÖN.JPG
.
스크립트의 시작 부분에 header('Content-Type: text/html; charset=UTF-8');
을 추가하면 올바른 파일 이름이 표시되지만 rename()
기능은 아무런 영향을 미치지 않습니다. 여기
내가 무엇을 시도했다입니다 : 어디에서 잘못 가고
while ($file = readdir($dir_handle)) {
rename($file, str_replace('Ö', 'O', $file)); # No effect
rename($file, str_replace('Ö', 'O', $file)); # No effect
}
?
내가 작업에 잘못된 도구를 사용한다고 판단되는 경우 말하십시오. 누구든지 Bash 스크립트로 이것을 달성하는 방법을 알고 있다면 보여주십시오. 나는 배쉬 껍질이 없다. 당신이 교체 할 문자의 수를 제한하는 경우
Windows 또는 Linux에 있습니까? – hek2mgl
PHP 스크립트가 UTF-8로 인코딩 되었습니까? –
그가 bash를 말했기 때문에 나는 Lunix를 제안 할 bash (1)를 언급하고 있다고 생각할 것이다. –