Ошибка при записи файла

Программирование, которое не связано с API.
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Ошибка при записи файла

Сообщение ukhov »

Вот код:

Код: Выделить всё

<?php   $fp=fopen("test/test.txt","a+");  if ($fp) {  flock($fp,2);  fwrite($fp,"text");  flock($fp,3);  fclose($fp);  }?>
При этом ошибка:
Warning: fopen(test/test.txt) [function.fopen]: failed to open stream: No such file or directory in /var/www/u1476588/data/www/test.ru/test/test.php on line 3
А если код такой(без внутренней директории):

Код: Выделить всё

<?php   $fp=fopen("test.txt","a+");  if ($fp) {  flock($fp,2);  fwrite($fp,"text");  flock($fp,3);  fclose($fp);  }?>
то ошибки нет и всё записывается. Как сделать, чтобы записало в файл, который находится в поддиректории?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Ошибка при записи файла

Сообщение Александр »

Где находится файл test.txt и сам php скрипт?

Почитай про относительные и абсолютные пути.

"test/test.txt" - ищет файл test.txt в папке test, которая находится в папке со скриптом.
"/test/test.txt" - ищет файл test.txt в папке test, которая находится в корне сайта.
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Ошибка при записи файла

Сообщение ukhov »

знаю я это.
в ошибке написан адрес файла. вот test.php (test.ru/test/test.php):

Код: Выделить всё

<?php   $fp=fopen("test/test.txt","a+");  if ($fp) {  flock($fp,2);  fwrite($fp,"text");  flock($fp,3);  fclose($fp);  }?>
и при этом ошибка,, надо записать файл
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Ошибка при записи файла

Сообщение Александр »

Такая структура?

Код: Выделить всё

- test - test.txt - test.php
Оба файла находятся в папке test?
Тогда посмотри что у тебя в скрипте... "test/test.txt" - относительный путь. Скрипт ищет файл test.txt в папке test.ru/test/test/test.txt
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Ошибка при записи файла

Сообщение ukhov »

Александр писал(а):Такая структура?

Код: Выделить всё

- test - test.txt - test.php
Оба файла находятся в папке test?
Тогда посмотри что у тебя в скрипте... "test/test.txt" - относительный путь. Скрипт ищет файл test.txt в папке test.ru/test/test/test.txt
структура:

Код: Выделить всё

 - test.ru               -test                              -test.txt                              -test.php                              -test                                              -test.txt
в первом случае, когда test.php записывает в test.txt - всё работает, а во втором, когда записыывает в test/test.txt - ошибка
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Ошибка при записи файла

Сообщение ukhov »

если указать файл, который записывает скрипт, и который находится в той же папке, что и скрипт, то всё работает. и test.txt с test.php окажутся в одной папке. а я хочу чтобы test.php находились вместе с папкой test, в которую запишет скрипт файл test.txt, но при этом ошибка. т.е. нельзя указать test/test.txt для записи. можно только test.txt. как это исправить?
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Ошибка при записи файла

Сообщение ukhov »

всё правильно. может сервера хостера с php не дружат? :lol:
не хочется записывать в формате test_test.txt, месево получится
Аватара пользователя
ukhov
Модератор
Модератор
Сообщения: 1343
Зарегистрирован: 04 янв 2011, 21:19

Re: Ошибка при записи файла

Сообщение ukhov »

up
acpid
Сообщения: 76
Зарегистрирован: 02 июн 2010, 09:05

Re: Ошибка при записи файла

Сообщение acpid »

запутал ты)
куда надо записать,дай полный путь?
acpid
Сообщения: 76
Зарегистрирован: 02 июн 2010, 09:05

Re: Ошибка при записи файла

Сообщение acpid »

пробуй "/test/test.txt" или "./test/test.txt"

ну и проверь разрешения например на чтение/запись в этой папке то. 777 попробуй поставь
Ответить