За последние 24 часа нас посетили 55099 программистов и 1720 роботов. Сейчас ищет 921 программист ...

Как получить полный листинг PHP кода?

Тема в разделе "Прочие вопросы по PHP", создана пользователем enshtein, 25 сен 2007.

  1. enshtein

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

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    В PHP есть такая прекрассная функция show_source() - синоним highlight_file(), используя которую например таким образом show_source(__FILE__); можно получить листинг раскрашенного кода текущего файла. А вот как бы получить полный листинг кода учитывающего содержимое вложенных includ'ов (include, requre) - т.е. полный листинг исполняемого интерпритатором PHP-кода по некоему запросу?
     
  2. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Анализировать код и заменять все вхождения include/require на содержимое файла. При этом делать всё это рекурсивно.
     
  3. enshtein

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

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    PHP:
    1. // рекурсивная ф-ция поиска инклудов
    2. function parser($file) {
    3.     static $count = 1; // счетчик инклудов
    4.     global $included_files; // массив путей подключаемых файлов
    5.     global $buffer; // выходный буфер
    6.     $source = file_get_contents($file);
    7.     // ищем include(), include_once(), requre(), require_once() в текущем файле
    8.     // если находим то вызываем parser($included_files[$count]);
    9.     // если нет добавляем show_source($file)  в $buffer;
    10. }  
    11.    
    12.  
    13.  
    14. $source = file_get_contents(__FILE__);
    15. // получаем массив всех включенных файлов
    16. $included_files =  get_included_files();
    17. parser(__FILE__);
    где то так да?