Добавление новой строки в середине эха внутри exec в php - PullRequest
0 голосов
/ 25 октября 2018

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

Вот код, который работает, но выводит все в одну строку:

exec('echo "Please find attached the query result for:  App: '.$varApp.'  Config: '.$varConfig.' Counter Type: '.$varCtrType.'  Thanks!" | /bin/mail -s "Testing" -a '.$output[8].' '.$varEmail.'  2>&1', $output2 );

Вот вывод этой команды в теле письма пользователя:

Please find attached the query result for:  App: ABCDEF Config: GHIJK   
Counter Type: LMNOP <br> Thanks!

Я безуспешно пытался использовать
и / r / n.Я также пробовал разные комбинации добавления кавычек и /.

кода, который не дает желаемого результата.

exec('echo "Please find attached the query result for:'<br>'  App: '.$varApp.' '<br>' Config: '.$varConfig.' <br> Counter Type: '.$varCtrType.' <br> Thanks!" | /bin/mail -s "Testing" -a '.$output[8].' '.$varEmail.'  2>&1', $output2 )

ИЛИ

exec('echo "Please find attached the query result for:/r/n  App: '.$varApp.' /r/n Config: '.$varConfig.' <br> Counter Type: '.$varCtrType.' <br> Thanks!" | /bin/mail -s "Testing" -a '.$output[8].' '.$varEmail.'  2>&1', $output2 );

Думаю, я не знаю, как добавить разрывы / перевод строки в середине этого эхо-оператора.Любое руководство здесь высоко ценится!

Спасибо!

1 Ответ

0 голосов
/ 25 октября 2018

Используйте команду printf вместо echo, она обрабатывает escape-последовательности в строке формата.

Кроме того, escape-последовательность для новой строки - \n, а не /n.Вам вообще не нужно \r.

exec('printf "Please find attached the query result for:\n  App: %s \n Config: %s \n Counter Type: %s \n Thanks!" "' . $varApp . '" "' . $varConfig . '" "' . $varCtrType . '"| /bin/mail -s "Testing" -a '.$output[8].' '.$varEmail.'  2>&1', $output2 );
...