Разбор csv в массив и отображение ячеек в таблице ERROR

Я пытаюсь получить все ячейки из CSV-файла и отображать их в таблице HTML. Я использую parsecsv для получения данных, там нет проблем. Однако, когда я пытаюсь перебрать элементы массива, чтобы поместить их в другой временный массив, Сервер останавливается из-за проблемы с памятью. Я не вижу проблем с кодом

    <?php

require_once('parsecsv/parsecsv.lib.php');

if (isset($_POST["submit"]))
{
if ($_POST["row"] != "" && $_POST["column"] != "")
{

$column = $_POST["column"];
$row    = $_POST["row"];

$csv = new parseCSV();
$csv->auto('example.csv');

$random = array();
foreach ($csv->data as $key => $row)
{
foreach ($row as $value)
{
array_push($random, $value);
}
}

$table = <<<EOD
<style type="text/css">
table, tr, td
{
padding: 10px;

}
</style>
EOD;

$table .= '<table border="1">';

for ($i = 0; $i < $row; $i++)
{
$table .= '<tr>';
for ($j = 0; $j < $column; $j++)
{

$table .= '<td>';
$table .= '<p style="text-align:center;">I"m not even trying to display the data</p>';

$table .= '</td>';
}
$table .= '</tr>';
}
$table .= '</table>';

echo $table;

Когда я удаляю часть «foreach», это работает.

Вот сообщение об ошибке

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 133693408 bytes) in /home/ubuntu/workspace/create_pdf.php on line 41 Call Stack: 0.0005 240672 1. {main}() /home/ubuntu/workspace/create_pdf.php:0

РЕДАКТИРОВАТЬ

Когда я пробую ту же итерацию по-другому, она работает

Вот код:

$csv = new parseCSV();
$csv->auto('example.csv');

$random = array();

foreach ($csv->data as $key => $row){
foreach ($row as $value){
array_push($random, $value);
}
}

print_r($random);

?>
</pre>
<style type="text/css" media="screen">
table { background-color: #BBB; }
th { background-color: #EEE; }
td { background-color: #FFF; }
td,tr {
padding:10px;
}
</style>
<table border="1" cellspacing="1" cellpadding="3">
<tr>
<?php foreach ($csv->titles as $value): ?>
<td><?php echo $value; ?></td>
<?php endforeach; ?>
</tr>
<?php foreach ($csv->data as $key => $row): ?>
<tr>
<?php foreach ($row as $value): ?>
<td><p style="text-align: center;"><?php echo $value; ?></p></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
</table>

0

Решение

Вы запускаете скрипт без достаточного количества php-памяти.
Вы можете настроить memory_limit в php.ini или если вы запускаете это как скрипт php, вы можете сделать это следующим образом:

php -dmemory_limit=-1 your/script.php

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]