Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Как записать html+php код в файл на php
Форумы портала PHP.SU » » Вопросы новичков » Как записать html+php код в файл на php

Страниц (1): [1]
 

1. netclan - 26 Ноября, 2012 - 13:15:30 - перейти к сообщению
Здравствуйте! У меня есть скрипт который выводит таблицу, собственно вот эта часть кода на php:
PHP:
скопировать код в буфер обмена
  1.  
  2. echo "<div class=\"CSSTableGenerator\" >";     
  3. echo "<table border=0>";       
  4. for ($i=0; $i<count($arr_info[1]); $i++) {
  5. if (in_array($arr_info[1], $arr_info)) {
  6. echo "<tr><td colspan=\"4\">".$arr_info[1][$i]."</td></tr>";
  7. echo "<tr><td>Время</td>";
  8. echo "<td>Название</td>";
  9. echo "<td>Стоимость</td></tr>";
  10. } else {
  11. }
  12. echo "<tr><td>".$arr_info[2][$i]."</td>";
  13. echo "<td>".$arr_info[3][$i]."</td>";
  14. echo "<td>".$arr_info[4][$i]."</td></tr>";
  15.    }
  16. echo "</table>";
  17. echo "</div>";      
  18.  

Я хочу данную часть кода записать в файл для дальнейшего подключения в нужном месте и выводе, для этого нашёл пример:
PHP:
скопировать код в буфер обмена
  1.  
  2. $h = fopen("my_file.html","w");
  3. $text = "Этот текст запишем в файл.";
  4. if (fwrite($h,$text))
  5.   echo "Запись прошла успешно";
  6. else
  7.   echo "Произошла ошибка при записи данных";
  8. fclose($h);
  9.  

Вопрос в том, как вышеуказанную часть кода записать в файл, не могу сообразить как их связать? Подскажите кто может!
2. DelphinPRO - 26 Ноября, 2012 - 13:31:57 - перейти к сообщению
ахренеть. а просто файлик с разметкой создать не судьба? а потом просто его инклудить.
3. netclan - 26 Ноября, 2012 - 13:36:13 - перейти к сообщению
DelphinPRO пишет:
ахренеть. а просто файлик с разметкой создать не судьба? а потом просто его инклудить.

Не не судьба, эта информация парсится с другого сайта и парсер будет выполняться каждый раз при заходе посетителя, а так я хочу запускать его по крону пару раз и всё перезаписывать в файл! Из статичного файла потом подключать нужную информацию!
4. DelphinPRO - 26 Ноября, 2012 - 13:36:18 - перейти к сообщению
короче, пишете такой файлик:

table.php
CODE (htmlphp):
скопировать код в буфер обмена
  1. <div class="CSSTableGenerator">
  2. <table border=0>
  3. <?php for ($i=0; $i<count($arr_info[1]); $i++) { ?>
  4.     <?php if (in_array($arr_info[1], $arr_info)) { ?>
  5.         <tr><td colspan="4"><?= $arr_info[1][$i] ?></td></tr>
  6.         <tr><td>Время</td>
  7.         <td>Название</td>
  8.         <td>Стоимость</td></tr>
  9.     <?php } else { ?>
  10. <?php } ?>
  11.     <tr>
  12.         <td><?= $arr_info[2][$i] ?></td>
  13.         <td><?= $arr_info[3][$i] ?></td>
  14.         <td><?= $arr_info[4][$i] ?></td>
  15.     </tr>
  16. <?php } ?>
  17. </table>
  18. </div>


и инклудите там, где он у вас должен быть

PHP:
скопировать код в буфер обмена
  1. include "table.php";

(Добавление)
netclan пишет:
Не не судьба, эта информация парсится с другого сайта


тьфу, блин. Уточнять сразу надо.

Всё равно. Что у вас парсится? Данные или разметка? Разметка наверняка статичная. Так что делайте статичный файл шаблона.

Цитата:
$h = fopen("my_file.html","w");
$text = "Этот текст запишем в файл.";
if (fwrite($h,$text))
echo "Запись прошла успешно";
else
echo "Произошла ошибка при записи данных";
fclose($h);


к чему эти сложности, можно ужать до одной строки кода

PHP:
скопировать код в буфер обмена
  1. file_put_contents("имя файла", "Данные");
5. netclan - 26 Ноября, 2012 - 13:46:49 - перейти к сообщению
[quote=DelphinPRO]
Всё равно. Что у вас парсится? Данные или разметка? Разметка наверняка статичная. Так что делайте статичный файл шаблона.
[/quote]
Там у меня добавляются ячейки при выводе расписания, т.е. там будет столько ячеек, сколько на другом сайте, а их колличество постоянно меняется!
[quote=DelphinPRO]
к чему эти сложности, можно ужать до одной строки кода
[/quote]
Так я и не допру никак, как полученную информацию записать в файл!
(Добавление)
[quote=DelphinPRO][/quote]
Получается в моём случае должно быть так:
PHP:
скопировать код в буфер обмена
  1. file_put_contents(table.php, join('', $arr_info))

и как вы привели шаблон разметки выше:
PHP:
скопировать код в буфер обмена
  1.  
  2.     <div class="CSSTableGenerator">
  3.     <table border=0>
  4.     <?PHP for ($i=0; $i<count($arr_info[1]); $i++) { ?>
  5.         <?PHP if (in_array($arr_info[1], $arr_info)) { ?>
  6.             <tr><td colspan="4"><?= $arr_info[1][$i] ?></td></tr>
  7.             <tr><td>Время</td>
  8.             <td>Название</td>
  9.             <td>Стоимость</td></tr>
  10.         <?PHP } else { ?>
  11.     <?PHP } ?>
  12.         <tr>
  13.             <td><?= $arr_info[2][$i] ?></td>
  14.             <td><?= $arr_info[3][$i] ?></td>
  15.             <td><?= $arr_info[4][$i] ?></td>
  16.         </tr>
  17.     <?PHP } ?>
  18.     </table>
  19.     </div>
  20.  

правильно я понял?
6. DelphinPRO - 26 Ноября, 2012 - 14:21:11 - перейти к сообщению
всё. я понял вашу мысль Улыбка

делаете так:

Этот код выполняется по крону:
PHP:
скопировать код в буфер обмена
  1. // $arr_info = парсер(); // здесь у вас работает парсер
  2.  
  3. include "/путь/к/файлу/table.php";     // заполняем таблицу
  4. // table.php - это шаблон таблицы. Можно код этого файла вставить сюда, вместо инклуда, если хочется
  5. $html = ob_get_clean();  // получаем html этой таблицы
  6.  
  7. // Записываем таблицу в файл
  8. file_put_contents('/путь/к/файлу/table.html', $html);


А так можно подключать статичную таблицу там, где она нужна
PHP:
скопировать код в буфер обмена
  1. include "/путь/к/файлу/table.html";
7. netclan - 26 Ноября, 2012 - 14:39:33 - перейти к сообщению
DelphinPRO пишет:
table.html

Спасибо!
Не подскажите случаем, как в шаблоне убрать вывод пустых ячеек в таблице?
8. DelphinPRO - 26 Ноября, 2012 - 19:38:57 - перейти к сообщению
может дело в этом
colspan="4"
нужно по идее colspan="3"

 

Powered by ExBB FM 1.0 RC1