Я гуглил этот вопрос два дня и действительно не нашел никого, кто мог бы дать мне твердый ответ.Может быть, гении в stackoverflow могут помочь?
Моя загадка: я пытаюсь читать и писать в файл, используя синтаксис URL для URL, указывающего на файл на моем сервере.(См. Код ниже). Код работает нормально, если имя файла находится в том же каталоге, что и файл php, и я не использую в нем URL-сокет.(т. е. $ filename = "test.xml") Но как только я пытаюсь добавить сокет URL (т. е. http://127.0.0.1/site_folder/text.xml), я получаю сбои во всех трех тестах (is_readable, is_writable, file_exists). Почему это будет?Есть ли способ исправить это так, чтобы я мог читать и записывать этот файл?
Мои настройки: PHP 5.3.2 в Microsoft IIS 7.0.6000.16386 на компьютере с операционной системой Microsoft Vista, каталог PHP: c: \ Program Files (x86) \ php \ Security: я установил разрешения для каталога файла и самого файла для учетной записи IUSR на чтение, запись, выполнение, список каталогов. Этот файл php находится в том же каталоге, что и файл test.xml длясейчас. Но я хочу, чтобы этот URL работал так, чтобы в будущем я мог настроить файл в другом каталоге.
php.ini config: я пробовал эти параметры среди других:
open_basedir=Off;
fastcgi.impersonate = 1;
display_errors = On;
error_reporting = E_ALL & ~E_STRICT;
safe_mode = Off;
allow_url_fopen = Off; (and tried On, neither works);
allow_url_include = Off; (and tried On, neither works);
Вот мой простой пример кода:
<?php
$filename = "http://127.0.0.1/sitename/admin/interface/test.xml"; // this one fails
// $filename = "text.xml" // this one works fine
echo $filename;
if (is_readable($filename)) {
echo "<br />The file is readable...<br />";
} else {
echo "<br />The file is not readable...<br />";
}
if (is_writable($filename)) {
echo "The file is writable...<br />";
} else {
echo "The file is not writable...<br />";
}
if (file_exists($filename)) {
echo "File exists...<br />";
} else {
echo "File cannot be found...<br />";
}
?>
И вывод, который я получаю:
http://127.0.0.1/sitename/admin/interface/test.xml
The file is not readable...
The file is not writable...
File cannot be found...
Есть идеи, почему это происходит?то же самое происходит с PHP 5.3.2 на моем MacBook Pro WiСервер Apache на нем.