2017-01-06 1 views
-2

을" ""/ "파일에 특수 문자가 포함 된 이름을 변경하고"PHP에서, 예를 들어 "A/B"를PHP는/"를 포함하는 이름을 가진 파일의 이름을 변경하는 방법

$filename= "A/B"; 
rename("1.html", $filename.".html"); 

이 작동하지 않습니다!

+3

'/'가 디렉토리의 경로 구분 기호로 사용되므로 대부분의 운영 체제에서이 작업을 수행 할 수 없습니다. 또한 "작동하지 않습니다 !!!" 문제에 대한 설명이 아닙니다. 체크 아웃 [ask]. – CollinD

+0

'$ filename = str_replace ("/", "- $ filename);'을 사용할 수는 있지만 파일의 원래 이름을 바꾸고 싶지 않습니다. – filip

+0

'/'문자가 들어있는 파일의 원래 이름을 정말로 의심합니다. 그리고 웹을 통해 사용자로부터 파일 이름을받는 경우 이러한 파일 이름에 대한 위생 처리가 대부분 이루어져야합니다. – CollinD

답변

1

리눅스 컴퓨터와 OSX에서 슬래시 (/)는 금지 된 문자입니다. 파일 시스템은 파일 이름에서이 문자를 사용할 수 없습니다.

+1

적어도 2000 년 이후 Windows. – CollinD

+0

그래서 방법이 없습니다 !! – filip

+0

@filip 기본적으로 그렇습니다. Rackspace CloudFiles 스토리지 시스템이 아닐 수도있는 파일 시스템이있을 수 있지만 정상적인 파일 시스템에서는 운이 좋지 않을 것입니다. –

0

시도해 보니 문자열을 수정할 수 있지만 다른 사용자의 말처럼 ... 가능합니다/OS에 문제가 있습니다. OS가 설치된 트리에서는 / caracter가 사용됩니다.

/     --> is root 
/folderX   --> is the folde X in the root folder 
/folderX/yourFile --> is the file in the folderX in the root folder 

내가 website

<?php 
$filename = "this/is/a/test"; 

$filename = str_replace("/", "-", $filename); 
var_dump($filename) 

?> 

에서 실행되는 코드입니다 그리고 당신은이 this/is/a/test

테스트라는 파일의 경로입니다 보듯이 결과

string(14) "this-is-a-test" 

입니다

경로가없는 파일 이름 this-is-a-test

이 답변으로 차이점을 확인하는 데 도움이되기를 바랍니다.

관련 문제