Как добавить перенос строки?

12
D
На сайте с 28.06.2008
Offline
1114
1409

Есть простенька уведомлялка об изменении файлов на сервере. Она пишет в лог путь до файлов которые были изменены. Но пишет все в одну кучу, не удобно смотреть.

как изменить этот код чтобы каждая запись была с новой строки?

exec("find /var/www -iname '*php' -cmin -10 -not -path '*/cache/*' > /var/www/check.log");
webiumpro
На сайте с 20.03.2017
Offline
39
#1

\n в начале или конце строки ставить пробовали?

Копирование лендингов. Разработка на фреймворке сервисов. Создание сайтов (/ru/forum/994418)
D
На сайте с 28.06.2008
Offline
1114
#2

Так?

exec("find /var/www -iname '*php' -cmin -10 -not -path '*/cache/*' > /var/www/check.log\n");  
webiumpro
На сайте с 20.03.2017
Offline
39
#3

Dram, нет, в конце строки, которую вы пишете в /var/www/check.log.

А вообще, вроде бы, через find имена файлов должны по умолчанию с новой строки писаться. Может вы не тем редактором смотрите? Например, виндовый редактор не видит никсовые endline.

D
На сайте с 28.06.2008
Offline
1114
#4

Вот весь код, уведомление мне приходит на мыло. И именно в нем (в gmail) я и смотрю) и там строки все в кучу, разделены только пробелом.

<?php
// No direct access

defined( '_JEXEC' ) or die( 'Restricted access' );

jimport('joomla.application.component.model');

class CronModelCheck extends JModelLegacy
{
function __construct()
{
parent::__construct();

$this->save();
}

/*
*
*/

function save()
{
jimport('joomla.mail.mail');

exec("find /var/www -iname '*php' -cmin -10 -not -path '*/cache/*' > /var/www/check.log");

$content = file_get_contents("/var/www/check.log");

if(!empty($content))
{
$config = JFactory::getConfig();
$mailer = JFactory::getMailer();

$mailer->setSender(array(
$config->get('mailfrom'),
$config->get('fromname')
));
$mailer->addRecipient($config->get('mailfrom'));
$mailer->setSubject("Suspect Notifier Alert!");
$mailer->isHTML(true);
$mailer->Encoding = 'base64';
$mailer->setBody($content);
$mailer->Send();
}
}
}


[umka]
На сайте с 25.05.2008
Offline
456
#5
$mailer->isHTML(true);

В хтмльном письме вы переносы строк (\n) не увидите.

Замените их на '<br>' или отправляйте письмо простым текстом.

Лог в помощь!
webiumpro
На сайте с 20.03.2017
Offline
39
#6

Dram, в таком случае, можете показать скриншот письма? Для более полного понимания, как эту задачу можно решить:)

D
На сайте с 28.06.2008
Offline
1114
#7
'[umka:
;15396135']В хтмльном письме вы переносы строк (\n) не увидите.
Замените их на '<br>' или отправляйте письмо простым текстом.

Об этом и спрашиваю - где добавить <br> ?

png 169594.png
webiumpro
На сайте с 20.03.2017
Offline
39
#8

Dram, вы видите, что написано в письме на скриншоте? Я - нет. Я попросил вас его скинуть, чтобы понять как у вас формируются логи и куда можно вставить <br> в вашей команде.

Еще можно попробовать вставить <br> перед формированием письма регулярками, если сложность с добавлением тега в bash.

---------- Добавлено 20.12.2017 в 14:26 ----------

И, видимо, вариант с регулярками более правильный, поскольку html-теги в логфайле быть не должны.

D
На сайте с 28.06.2008
Offline
1114
#9

В письме на скриншоте полный путь до файла который был изменен. Но каждый новый путь не с новой строки а через пробел. Это не удобно читать.

MT
На сайте с 17.01.2017
Offline
22
#10

Попробуйте такой вариант:


$content = file_get_contents("/var/www/check.log");
$content = nl2br($content);
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий