За последние 24 часа нас посетили 72326 программистов и 1653 робота. Сейчас ищут 976 программистов ...

Помогите пожалуйста с фрагментом кода на ПХП

Тема в разделе "PHP для новичков", создана пользователем BlackAngel, 29 май 2009.

  1. BlackAngel

    BlackAngel Активный пользователь

    С нами с:
    19 мар 2007
    Сообщения:
    32
    Симпатии:
    0
    Решил тут сваять небольшой сайтик под свои нужды... пишу модуль:

    Код (Text):
    1.  
    2. $bfr=filesize("files/blok.inc");        //Проверяем размер файла
    3. if ($bfr<>""){                          //Если файл не пустой
    4. $blokfile=fopen ("files/blok.inc","r"); //Открыть файл только для чтения, поместить указатель в начало файла
    5. $a=fread($blokfile,$bfr);               //Считываем файл в переменную $a
    6. fclose;                                 //Закрываем файл
    7. };
    8. $per=explode("<!s>",$a);                //Делим строку на подстроки по маркеру занося в масив
    9. $l=sizeof($per);                        //Проверяем количество элементов масива
    10. $l=$l-1;                                //Уменьшаем значение данное значение на единицу
    11.  
    12. for ($g=0; $g<$l; $g++){
    13. $qwer=explode("<!m>",$per[$g]);         //Делим строку на подстроки по маркеру занося в масив
    14. if ($qwer[2]>0){                        //Если блок входит в состав активных
    15. $nazvaniebloka=$qwer[1];                //Активируем его название
    16. include $qwer[0];                       //Запускаем выполнение заданного блока
    17. include $oformlenie."blok.inc";         //Активируем блок с текущими параметрами
    18. };
    19. };
    строка include $qwer[0];, отробатывая в цикле первый раз, работает правильно, но при повторных циклах выдаёт ошибки:

    Подскажите в чём дело и как быть...
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Вы инклуд закомментируйте, а вместо него сделайте вывод и посмотрие, что выводит. Наверняка таких файлов не существует.
     
  3. BlackAngel

    BlackAngel Активный пользователь

    С нами с:
    19 мар 2007
    Сообщения:
    32
    Симпатии:
    0
    Проверял... существуют...
    Да и как они могут не существовать если она их адреса из файла считывает куда я их прописал
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Проверяйте все: пробелы, переводы строки, полные пути...
     
  5. BlackAngel

    BlackAngel Активный пользователь

    С нами с:
    19 мар 2007
    Сообщения:
    32
    Симпатии:
    0
    Нет, исключено! Всё перепроверил прежде чем запостился. Собственно файл из которого он считывает выглядит вот так:

    bloki/menu/glav.inc<!m>Меню<!m>1<!s>
    bloki/menu1/glav.inc<!m>Меню 1<!m>1<!s>
    bloki/menu2/glav.inc<!m>Меню 2<!m>1<!s>

    Я его пока тока пишу и тестю. Как видите напутать нереально...

    Что ещё может быть?
     
  6. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    filesize возвращает int, лучше стравнивать $bfr != 0

    После } точку с запятой можно не ставить.

    так от записи в файл они не появятся на диске.

    Судя по этому блоку функция 2 раза отработала, а сообщение выдала на 3м файле

    попробуйте сделать так и посмотрите, что будет.
     
  7. BlackAngel

    BlackAngel Активный пользователь

    С нами с:
    19 мар 2007
    Сообщения:
    32
    Симпатии:
    0
    Ну это делоя ясное... Но вы меня не оняли...

    Есть файл, в котором прописаны существующие блоки (регистр своего рода) и вот это и есть содержимое этого файла:

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

    Нет, функция отработала 1 раз нормально, а два следующих выдала единтичные ошибки
     
  8. Greg1978

    Greg1978 Активный пользователь

    С нами с:
    18 окт 2008
    Сообщения:
    484
    Симпатии:
    0
    Адрес:
    class SenjorUser{}
    У меня вчера была такая же ситуация.
    Всё одинаково всё отлично но сервер не видит файл в упор.
    Помогло банальное удаление файла и создание его заново (с тем же именем! что странно) в ручную, ну и соответсвенно перед этим код скопировать в буфер обмена.
    Правда я так и не понял что произошло! :(
     
  9. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    Купите нормальную книгу по пхп, например Котерова, код просто ужасный, как и сам подход
    Какая проблема стоит изначально?