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

Тема в разделе "PHP", создана пользователем Apocalypse, 17 сен 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Apocalypse

    Apocalypse Take My Revolution

    Moderator
    Регистр.:
    2 июн 2007
    Сообщения:
    307
    Симпатии:
    800
    Нужен совет, что сделать:

    В одном каталоге есть два файла - 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
    
    Не понимаю в чем дело, в другой папке есть подобный скрипт и все работает, а здесь такая лажа =(
     
  2. megadude

    megadude

    Регистр.:
    6 сен 2006
    Сообщения:
    184
    Симпатии:
    66
    У меня вот так заработало прекрасно:

    Код:
    <?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++;
        }
    }
    ?>
     
  3. judgefog

    judgefog

    Регистр.:
    12 авг 2006
    Сообщения:
    487
    Симпатии:
    335
    посмотреть в другой папке какие права на файл и выставить такие же

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

    а вообще
    эстетичнее будет
     
  4. Apocalypse

    Apocalypse Take My Revolution

    Moderator
    Регистр.:
    2 июн 2007
    Сообщения:
    307
    Симпатии:
    800
    да дело не в цикле, даже оставив

    Код:
    <?php
    $nmenu=array();
    $nmenu = file('menu.txt.php'); 
    ?>
    
    Все равно выводиться
    ошибка, но файл menu.txt.php 100 % есть на серваке, и через include или require выводиться =(

    Добавлено через 3 минуты
    с правами все тоже самое, путь поменял, но там ведь он на папку вверх поднимается, так еще больше ошибок выдает =)
     
  5. Apocalypse

    Apocalypse Take My Revolution

    Moderator
    Регистр.:
    2 июн 2007
    Сообщения:
    307
    Симпатии:
    800
    Код:
    <?php
    $f=file_get_contents('./menu.txt.php');
    if ($f) echo $f;  
    ?>
    
    да чтоже такое...все встало из-за этой фигни... :mad:
     
  6. BACZ

    BACZ

    Регистр.:
    18 июн 2008
    Сообщения:
    610
    Симпатии:
    381
    а проверить что папка какая надо?
    Код:
    $dir=getcwd()."/";
    chdir($dir);
    //echo $dir;
    $f=file_get_contents($dir.'menu.txt.php');
    if ($f) echo $f;  
    
     
  7. Apocalypse

    Apocalypse Take My Revolution

    Moderator
    Регистр.:
    2 июн 2007
    Сообщения:
    307
    Симпатии:
    800
    зачем проверять то =( не работает с таким примером, написал хостеру в саппорт, эти буржуи говорят что типа у них отключен fsocket, но причем тут это, если у меня на том же сайте есть скрипт в другой папке и он все прекрасно читает таким же образом :confused:
     
  8. AlexShaman

    AlexShaman Постоялец

    Регистр.:
    30 мар 2007
    Сообщения:
    86
    Симпатии:
    5
    проверь настрйки доступа к файлу+попробуй указать полный путь к нему.

    уже было сказано, что проблема не в пути
     
  9. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Очень странно что в первом посте написано что открывается файл menu.txt.php а в ошибке menu.txt... Может реально попробовать просто с текстовым файлом без расширения php...
     
  10. venetu

    venetu

    Регистр.:
    28 мар 2007
    Сообщения:
    735
    Симпатии:
    261
    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. Это конечно изврат, но раз по-другому не работает..
     
Статус темы:
Закрыта.