За последние 24 часа нас посетили 16011 программистов и 1500 роботов. Сейчас ищут 758 программистов ...

Создать файл PHP из файла PHP

Тема в разделе "PHP для новичков", создана пользователем Anubis2k, 17 сен 2010.

  1. Anubis2k

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

    С нами с:
    6 фев 2010
    Сообщения:
    13
    Симпатии:
    0
    Есть форма, список вопросов, в которой нужно выбрать ответы, кое-где их вписать, где-то выбрать изображения. По нажатию кнопки должен сформироваться новый php файл с результатами в формализованном виде.
    Ничего умнее, чем делать через формы и через fopen&fwrite, мне в голову не приходит.
    Что-то типа
    PHP:
    1.  
    2. //Форма с будующими результатами
    3. <?php
    4. echo "<form name=\"form1\" action=\"copy.php\" method=\"get\">
    5.          
    6.          <select name=\"Item[]\" size=5 multiple>
    7. ......
    8.         <input type=\"submit\" value=\"Создать опросник\" class='button'>
    9.        </form>";
    10. // Записываем то что навводили
    11.  if (isset($_GET['Item']))
    12.  {
    13.    $file = "test.php"; // Некоторый файл
    14.    $fh=fopen( $file, "wt")or die("File ($file) cannot be created");
    15.  
    16.         fwrite($fh, "<?php \n echo \"Ваши вопросы: <p><ul>\";\n");
    17.         foreach ( $Item as $value )   fwrite($fh, "echo \"<li>$value\";\n");
    18.         fwrite($fh, "echo \"</ul>\";\n?>");
    19.         fwrite($fh, "echo                \"
    20.                     </td></tr>
    21.     </table>\n\";
    22. .....
    23.    fclose($fh);
    24.  }
    25. ?>
    26.  
    Выглядит ужасно, не правда ли? :cry:
    Каждый раз все тэги записывать через fwrite?
    А если список данных большой+? Будет ещё ужаснее!
    Можно ли как-то это сделать красиво и эффективнее, а не вот так? :(
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Anubis2k
    Записывать обязательно? В чем цель? В записи в файл или в отображении результатов без записи? Или и то, и другое?
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Конечно можно! Записать вопросы в базу данных, а страницы генерировать каждый раз при запросе страницы. При чем не тупо html-код в php, а используя шаблоны.
     
  4. Anubis2k

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

    С нами с:
    6 фев 2010
    Сообщения:
    13
    Симпатии:
    0
    Apple
    Файл php нужно формировать обязательно!
    полноценный, со всеми тэгами, хедэрами, require_once....
    Цель сформировать файл-опросник который можно дальше юзать...
    К примеру есть полный набор вопросов к тесту.
    Для "теста 1" мы выберем один перечень.
    Для "теста 2" совсем другой...


    [vs]

    Нет, т.к. большую часть вопросов надо набирать вручную...
     
  5. ShamahN

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

    С нами с:
    10 апр 2007
    Сообщения:
    1.449
    Симпатии:
    0
    Адрес:
    г.Волгодонск Роствской обл.
    Да хоть в ножную) выбрал вопросы, скинул идники в постороннюю таблицу и дергай потом по сколько надо
    Генерить пхп файл глупо, тем более достаточно сложно продумать все правильно. Придется немного подумать 2умерно =)
     
  6. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Anubis2k
    Данные и код в один компот! =)

    можно сделать проще. Один файл пхп на все случаи жизни. К нему конфиг с указанием вопросов, ответов, или всего этого дела в базе. И по этому конфигу, например xmlке, строится уже опросник.
     
  7. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Anubis2k
    Бред, самый полный бред.
    Формирование файла - это не говно, слитое к одну кучу.
    Формирование должно проходить с разделением, в результате - должна получится мета-информация и текст, которые при запросе собираются к опрос. А не лить всю в одну компостную кучу. Подход к задаче неверный, соответственно решение такое же.
    Либо переписвайте, либо разговор на этом окончен.
     
  8. Anubis2k

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

    С нами с:
    6 фев 2010
    Сообщения:
    13
    Симпатии:
    0
    igordata
    К нему конфиг с указанием вопросов, ответов,
    Нет предопределённых ответов и вопросов! Нельзя использовать БД!

    Apple
    Формирование должно проходить с разделением, в результате - должна получится мета-информация и текст, которые при запросе собираются к опрос.
    Что-то не вкуриваю, что вы имеете ввиду! При каком запросе в какой опрос, чего? I do not speak Chinese o_0

    Задача то в том чтобы написать генератор php-файлов!
    Т.е. придумываем название файла, вводим вопросы, вводим варианты ответов, нажимаем "сгенерировать " и, вуаля, получаем готовый php-файл!
     
  9. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Это неправильная архитектура, никто не будет помогать ее делать

    upd.
    http://phpfaq.ru/humor#hyper ;-)
     
  10. Anubis2k

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

    С нами с:
    6 фев 2010
    Сообщения:
    13
    Симпатии:
    0
    [vs]
    Это неправильная архитектура

    А какая архитектура будет правильной, при такой поставленной задаче?
    (Я повторюсь нет предопределённых вопросов и ответов)
    Пока что самое правильная архитектура это.

    PHP:
    1.  <?php $TOP=... //типовая шапка
    2. $BOTTOM=... //типовое завершение
    3. echo "<form> // заполняем форму
    4.         ......
    5.         <input type=\"submit\" value=\"Создать\" class='button'>      
    6.    </form>";
    7. //записываем
    8.               fwrite($fh, $TOP);
    9.             ....
    10.               fwrite($fh, $BOTTOM);
    11. ?>
    12.  
    [vs]
    http://phpfaq.ru/humor#hyper
    Типичный "программерский" юморок, без знания сути вопроса.
    Дерево в перекрытиях зданий, по-прежнему активно используется. Не в небоскрёбах конечно и других быстросделанных коробках... В нормальных кирпичных пятиэтажках.