Как бороться с пробелами в пути к корневой папке - PullRequest
1 голос
/ 30 ноября 2011

Я написал скрипт PHP на моем локальном сервере, который должен включать путь к файлу, в который мне нужно записать содержимое в файл, используя file_put_contents, который работал без проблем на локальном хосте. Я переместил файлы на веб-сервер, где он был настроен с путем между пробелами Например: C: \ Program File (xxx) \ Apache Software Foundation \ Apache2.2 \ htdocs \writcode \ writefile \

Когда я пытаюсь открыть папку writefile для записи содержимого в файл temp_1.cfg в этой папке, появляется сообщение об ошибке

Внимание: file_put_contents (C: \ ProgramFile (ххх) \ ApacheSoftwareFoundation \ apache2.2 \ HTDOCS \ writtencode \ WriteFile \ temp_1.cgf) [function.file-put-contents]: не удалось открыть поток: такого файла нет или каталог в C: \ Program File (xxx) \ Apache Software Фонд \ apache2.2 \ HTDOCS \ writtencode \ WriteFile \ index.php

Любая идея, как устранить или решить проблему пробелов в пути при записи содержимого в файл, используя file_put_contents?

Ответы [ 2 ]

5 голосов
/ 30 ноября 2011
$path ="C:\ProgramFile(xxx)\Apache Software Foundation\Apache2.2\htdocs\writtencode\writefile\temp_1.cgf";
file_put_contents($path = str_replace(' ', '\ ', $path));
0 голосов
/ 30 ноября 2011

Вы пытались заключить путь в кавычки?Также вам может понадобиться экранировать все обратные слэши, чтобы:

file_put_content(C:\ProgramFile(xxx)\ApacheSoftwareFoundation\Apache2.2\htdocs\writtencode\writefile\temp_1.cgf);

становится:

file_put_content('C:\\ProgramFile(xxx)\\ApacheSoftwareFoundation\\Apache2.2\\htdocs\\writtencode\\writefile\\temp_1.cgf');

...