PHP fopen не находит существующий файл - PullRequest
0 голосов
/ 14 января 2019

В настоящее время я пишу систему входа в систему на PHP, для этого мне нужно прочитать файлы с некоторой пользовательской информацией. Но после изменения системы папок PHP fopen больше не читает файлы.

Оба файла users.php и userinf.csv находятся в папке samle.

Я уже пытался изменить путь к файлу, жестко закодировал путь к файлу, пересоздал файл. Все из этого файла.

//Read file
$fp = fopen("userinf.csv", "r");
if(!$fp)
{
    echo "File couldn't be read";
    return false;
}

До изменения файловой системы все работало. Но теперь я получаю ошибку: Предупреждение: fopen (userinf.csv): не удалось открыть поток: нет такого файла или каталога в FILEPATH в строке 45

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Когда вы используете функцию fread без каких-либо ссылок, она может потерпеть неудачу. Я всегда говорю, что сначала нужно проверить свой путь с помощью getcwd()

<?php
echo getcwd(); //Current Working Directory
?>
0 голосов
/ 14 января 2019

Используйте абсолютные пути, всегда. Это устраняет любую неопределенность. Использование относительного пути может меняться в зависимости от того, где находится ваш скрипт, помимо прочего, в зависимости от вашей системы.

$fp = fopen("/home/somewhere/blah/userinf.csv", "r");

Вы всегда можете использовать переменную для пути:

// Somewhere in your code
define('ROOT_PATH', "/home/somewhere/blah");

// In the implementation
$fp = fopen(ROOT_PATH . "/userinf.csv", "r");
...