Проблема с чтением файла

Статус
В этой теме нельзя размещать новые ответы.

Apocalypse

Take My Revolution
Регистрация
2 Июн 2007
Сообщения
304
Реакции
802
Нужен совет, что сделать:

В одном каталоге есть два файла - menu.php и menu.txt.php

В первом код такой:
Код:
<?php
$nmenu=array();
$nmenu = file('menu.txt'); 
if ($f=fopen('menu.txt',"r"))
	{
	foreach ($nmenu as $item)
	{
		echo $nmenu;
	}
	}
?>

Во втором файле по-строчно названия меню, это не важно.

Так вот, сервак выдает такую ошибку

Код:
Warning: file(menu.txt) [function.file]: failed to open stream: No such file or directory in /home/vol1/сайт.com/htdocs/site/menu.php on line 3

Warning: fopen(menu.txt) [function.fopen]: failed to open stream: No such file or directory in /home/vol1/сайт.com/htdocs/site/menu.php on line 4

Не понимаю в чем дело, в другой папке есть подобный скрипт и все работает, а здесь такая лажа =(
 
У меня вот так заработало прекрасно:

Код:
<?php
$nmenu=array();
$nmenu = file('menu.txt.php'); 
$i = 0;
if ($f=fopen('menu.txt.php', "r")) {
    foreach ($nmenu as $item)    {
      echo $nmenu[$i];
      $i++;
    }
}
?>
 
посмотреть в другой папке какие права на файл и выставить такие же

вот так записать если вдруг настройки пути корявят
'./menu.txt.php'

а вообще
$f=file_get_contents('./menu.txt.php');
if ($f) echo $f;
эстетичнее будет
 
У меня вот так заработало прекрасно:

Код:
<?php
$nmenu=array();
$nmenu = file('menu.txt.php'); 
$i = 0;
if ($f=fopen('menu.txt.php', "r")) {
    foreach ($nmenu as $item)    {
      echo $nmenu[$i];
      $i++;
    }
}
?>

да дело не в цикле, даже оставив

Код:
<?php
$nmenu=array();
$nmenu = file('menu.txt.php'); 
?>

Все равно выводиться
ошибка, но файл menu.txt.php 100 % есть на серваке, и через include или require выводиться =(

Добавлено через 3 минуты
посмотреть в другой папке какие права на файл и выставить такие же

вот так записать если вдруг настройки пути корявят
'../menu.txt.php'

а вообще

эстетичнее будет

с правами все тоже самое, путь поменял, но там ведь он на папку вверх поднимается, так еще больше ошибок выдает =)
 
а проверить что папка какая надо?
Код:
$dir=getcwd()."/";
chdir($dir);
//echo $dir;
$f=file_get_contents($dir.'menu.txt.php');
if ($f) echo $f;
 
а проверить что папка какая надо?
Код:
$dir=getcwd()."/";
chdir($dir);
//echo $dir;
$f=file_get_contents($dir.'menu.txt.php');
if ($f) echo $f;

зачем проверять то =( не работает с таким примером, написал хостеру в саппорт, эти буржуи говорят что типа у них отключен fsocket, но причем тут это, если у меня на том же сайте есть скрипт в другой папке и он все прекрасно читает таким же образом :confused:
 
проверь настрйки доступа к файлу+попробуй указать полный путь к нему.

уже было сказано, что проблема не в пути
 
Очень странно что в первом посте написано что открывается файл menu.txt.php а в ошибке menu.txt... Может реально попробовать просто с текстовым файлом без расширения php...
 
1) файл menu.txt.php
Проверь, чтобы были установлены права на чтение для владельца и others: r--r--r--

Проверь, что ненулевая длина файла. (хотя и так должен открываться)
Проверь, что название целиком состоит из маленьких букв, нигде нет больших.
Проверь, что в названии нигде не затесался пробел.
Проверь, что в названии все буквы английские.


2) файл menu.php

Проверь, что ты открываешь именно 'menu.txt.php', а не 'menu.txt' 'menu.php.txt' и тому подобное.

Если не работает
PHP:
$nmenu = file('menu.txt.php');
попробуй
PHP:
$nmenu = file(dirname(__FILE__).'/menu.txt.php');

Если все еще будет ошибка, попробуй
PHP:
include 'menu.txt.php';

Если так заработает, то читай файл себе в переменную через ob_start() и include. Это конечно изврат, но раз по-другому не работает..
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху