PHP включает файл несколько раз на одной странице
У меня есть 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
Что я делаю не так? Спасибо!
5
1 answers
Скорее всего, вы определяете функцию или класс в 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";
}
?>
14
Author: Lekensteyn, 2011-09-13 14:12:23