Size: a a a

2020 June 30

MK

Mikhail Kostin in phpGeeks
но всё в один файл пиздячить это конечно такое себе
источник

MK

Mikhail Kostin in phpGeeks
ты бы лучше отдельно запилил скрипт который тебе эту таблицу генерирует
источник

MK

Mikhail Kostin in phpGeeks
а потом делай с ней чё хочешь, хочешь на страницы выводи а хочешь на почту отправляй
источник

MK

Mikhail Kostin in phpGeeks
Kirill Sukhov
У меня есть php файл. Происходит обращение к API, получаю json, всяческие операции с ним выполняю. Потом создается в этом же файле таблица на голом HTML, но <td> заполняется в цикле (многомерный массив) и выводится эта табличка (я вижу ее на экране).
Так вот, я хочу чтобы у меня cron запускал некий скрипт, который будет раз в день мне на почту отправлять письмо. Я открываю это письмо - а там табличка. Либо, открываю письмо - а там URL, я его открываю - а там моя табличка.
ты таблицу как формируешь?
1) просто php закрываешь а дальше теги идут?
?>
<table>
<tr> <?=$myText?> </tr>
</table>
2) или сначала в строку формируешь? а потом выводишь
$table = "<table>";
$table .= "<tr>".$myText."</tr>";
$table .= "</table>";
echo $table;
источник

KS

Kirill Sukhov in phpGeeks
Mikhail Kostin
ты бы лучше отдельно запилил скрипт который тебе эту таблицу генерирует
он такой есть. Просто не понимаю пока, как эту таблицу засунуть в качестве аргумента функции mail().
Кстати, под таблицу может отдельный html-файл создать? Это наверное не очень хорошая практика, когда все вместе в одном файле?
источник

KS

Kirill Sukhov in phpGeeks
Mikhail Kostin
ты таблицу как формируешь?
1) просто php закрываешь а дальше теги идут?
?>
<table>
<tr> <?=$myText?> </tr>
</table>
2) или сначала в строку формируешь? а потом выводишь
$table = "<table>";
$table .= "<tr>".$myText."</tr>";
$table .= "</table>";
echo $table;
Вот так

<body>
   <!-- Header -->
   <section id="header">
     <header>
       <h2></h2>
     </header>

     <!-- TABLE CODE START -->
     <table id="demo" border="1" class="dataframe">
       <thead>
         <tr style="text-align: right;">
           <th>EAN</th>
           <th>Name</th>
<th>Article code (code)</th>
           <th>Total in stock, Tovacom  </th>
           <th>Total in stock, Erply</th>
           <th>Result</th>
         </tr>
       </thead>
       <tbody>
</tr>
  <?php foreach ($chunkedArray as $value): ?>
<tr>
<?php foreach ($value as $item): ?>
<td><?= $item ?></td>
<?php endforeach; ?>
</tr>
<?php endforeach; ?>
       </tbody>
     </table>
     <!-- TABLE CODE END -->

   </section>
 </body>
</head>
источник

V

Vitaly in phpGeeks
Kirill Sukhov
он такой есть. Просто не понимаю пока, как эту таблицу засунуть в качестве аргумента функции mail().
Кстати, под таблицу может отдельный html-файл создать? Это наверное не очень хорошая практика, когда все вместе в одном файле?
html это текст, поэтому от первоначальной строки из твоего примера отличается лишь длиной, и отсутствием правильный заголовков  https://css-tricks.com/sending-nice-html-email-with-php/
источник

MK

Mikhail Kostin in phpGeeks
Kirill Sukhov
он такой есть. Просто не понимаю пока, как эту таблицу засунуть в качестве аргумента функции mail().
Кстати, под таблицу может отдельный html-файл создать? Это наверное не очень хорошая практика, когда все вместе в одном файле?
вот так сделай
<? ob_start(); ?>
<table>
 myTable
</table>
<?
$content = ob_get_clean();
return $content;
?>
источник

MK

Mikhail Kostin in phpGeeks
И потом через
$table = include('myScript.php');
на любой странице делай с ним что хочешь
источник

KS

Kirill Sukhov in phpGeeks
Mikhail Kostin
И потом через
$table = include('myScript.php');
на любой странице делай с ним что хочешь
то есть $table я могу передать в mail() по итогу ?
этим ob_start непонятно. Что мы возвращаем в return, какую функцию нужно создать и откуда ее вызывать?
источник

MK

Mikhail Kostin in phpGeeks
да сможешь передать
источник

MK

Mikhail Kostin in phpGeeks
почитай раз непонятно что за функция
https://www.php.net/manual/ru/function.ob-start.php
источник

MK

Mikhail Kostin in phpGeeks
вынеси целиком работу с апи и формирование таблицы в отдельный скрипт.
не нужно чтобы у тебя в одном файле и функциональная часть была и фронтенд часть с <html><body>
источник

MK

Mikhail Kostin in phpGeeks
получится три файла
renderTable.php
page.php
sendMail.php
источник

MK

Mikhail Kostin in phpGeeks
в page.php будет так:
<body>
<? echo include('renderTable.php'); ?>
</body>
источник

MK

Mikhail Kostin in phpGeeks
в sendmail.php
$table = include("renderTable.php");
mail("test@test.ru","My Subject", $table);
источник

KS

Kirill Sukhov in phpGeeks
а в renderTable будет код + html?
источник

MK

Mikhail Kostin in phpGeeks
Kirill Sukhov
а в renderTable будет код + html?
да твоя работа с апи и твоя таблица
источник

MK

Mikhail Kostin in phpGeeks
никакого другого html кроме самой таблицы там быть не должно
источник

MK

Mikhail Kostin in phpGeeks
от  <!-- TABLE CODE START --> до <!-- TABLE CODE END -->
весь остальной фронтенд в файле page.php
источник