У меня XAMPP установлен на сервере Windows 2000. все работает отлично, кроме функции PHP fopen. Я не могу ни создавать, ни открывать файлы с ним. странно то, что я могу включить / require / file_get_contents / другие функции, связанные с файлами; Кроме того, fopen не генерирует никаких ошибок или уведомлений, просто возвращает NULL.
Я зашел так далеко, что предоставил полный контроль над файлом и всеми вложенными в него папками всем, но я все равно получаю NULL вместо указателя файла.
Я пробовал это на php 5.2.9, 5.2.13 и 5.3.1 с тем же эффектом. я просмотрел файл php.ini в поисках чего-то, что его нарушает; Я даже пытался удалить и использовать основной INI-файл из Linux-коробки, где работает FOPEN и до сих пор ничего.
Я знаю, что должен перезапустить apache после изменения моего ini и всего того, что было (я даже перезапустил сервер), так что это не так.
Я нахожусь в этой позе, предполагая, что это проблема конфигурации Apache, завтра я собираюсь запустить тест через php-cli, чтобы убедиться.
Я действительно не хочу больше ломать голову из-за этого, может ли какой-нибудь apache / php волшебник прийти мне на помощь?
Привет, ребята,
спасибо за ответы. Вы правы, это не проблема конфигурации. проблема должна быть с одним из моих dll или одним из моих включенных файлов. Я просто попробовал тот же код, который не работает в новом файле без включения, и отключил свои пользовательские библиотеки, и это сработало.
для записи вот что я делал, что не работало:
$test_file = 'c:\\test.csv';//everybody has full control. is very large.
if(file_exists($test_file) && is_readable($test_file)){
$fp = fopen($test_file, 'r');
echo var_export($fp, true);//outputs NULL. on my linux box this is a number.
if($fp !== false){
//do the work
fread($fp, 10);//throws the error that $fp is not a valid file handle
}
}
что-то, что я включаю, должно как-то нарушать fopen. работает, как и ожидалось, в новом файле без включений.