2017-01-06 4 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

На машинах Linux и на OSX косая черта (/) является запрещенным символом. Файловая система не позволит вам использовать этот символ в имени файла.

+1

Windows с по крайней мере 2000 также. – CollinD

+0

так нет пути !!!! – filip

+0

@filip По сути, да, нет способа. Там может существовать некоторая файловая система, которая не запрещает ее (я думаю, что система хранения Rackspace CloudFiles не может), но для любой нормальной файловой системы, я думаю, вам не повезло. –

0

Я пробовал, и можно изменить строку, но, как говорят другие пользователи ... возможно/у вас возникнут проблемы с вашей ОС. Becase the / 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) 

?> 

И это результат

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

Как вы видите, что это путь к файлу под названием тест this/is/a/test

И это имя файла без пути this-is-a-test

Я надеюсь, что этот ответ поможет вам увидеть разницу.

Смежные вопросы