PHP включить файл несколько раз на одной странице - PullRequest
5 голосов
/ 13 сентября 2011

У меня есть php-файл с именем kal_test.php, который присваивает значение переменной $vbl.Эта переменная необходима в файле с именем kal_generator.php, который создает таблицу из этой переменной (я избавлю вас от подробностей).Это выглядит так:


[kal_test.php]

<?php
$vbl = "14/09/2011";
include ("kal_generator.php");
?>

[kal_test.php]

<?php
// Long code converts the $vbl into a 2-dimensional array called $output
// I'll spare you the details (it works fine by the way)
?>

<table>
  <tr><th>bla</th><th>blabla</th></tr>

<?php
foreach ($output as $v1) {
    echo "<tr>";
    foreach ($v1 as $v2) {
        echo "<td>$v2</td>";
    }
    echo "</tr>\n";
}
?>

</table>

Эта установка работаетхорошо, но я не могу сделать так, чтобы два из них появлялись на одной странице, например:

[kal_test.php]

<?php
$vbl = "14/09/2011";
include ("kal_generator.php");
$vbl = "21/09/2011";
include ("kal_generator.php");
?>

Это даст следующий результат:

//here comes the header

<table> // table created with $vbl = "14/09/2011"
  <tr><th>bla</th><th>blabla</th></tr>
  <tr><td>this</td><td>works</td></tr>
  <tr><td>this</td><td>works</td></tr>
</table>

//here should the second table be and also the rest of the page (footer), this is completely missing

Что я делаю не так?Спасибо!

1 Ответ

14 голосов
/ 13 сентября 2011

Вы, вероятно, определяете функцию или класс в kal_generator.php.PHP прерывается, когда вы пытаетесь переопределить такую ​​функцию или класс.Попробуйте добавить свой код в функцию, включите эту функцию один раз и затем запустите функцию вместо включения файла.

kal_test.php

<?php
require_once 'kal_generator.php';
kal_generator("14/09/2011");
kal_generator("21/09/2011");
?>

kal_generator.php

<?php
function kal_generator($vbl) {
    /**
     * Here, you should be creating $output
     */
    echo <<EOF
<table>
  <tr><th>bla</th><th>blabla</th></tr>

EOF;
    foreach ($output as $v1) {
        echo "<tr>";
        foreach ($v1 as $v2) {
            echo "<td>$v2</td>";
        }
        echo "</tr>\n";
    }

    echo "</table>\n";
}
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...