#php #exec
Вопрос:
У меня есть текст, переданный в php-скрипт в командной строке.
exec('echo ' . escapeshellarg($text) . ' | script.php');
Иногда в тексте $есть знак доллара, например The ticket cost $1 and was easy to get.
Если я сохраню копию выходных данных из escapeshellarg($text), они будут отображаться правильно.
Внутри script.php Я получаю переменную с $text = $this->getStdin(Maintenance::STDIN_ALL);
, однако, если я сохраню копию текста $в этот момент, он заменит $1 разрывами строк, что-то вроде:
The ticket cost
and was easy to get.
Как я могу предотвратить изменение текста?
Комментарии:
1. что такое
$this->getStdin()
?2. И как вы экономите стоимость
$text
?3.
exec()
не делает ничего плохого. Если вы перенаправите вывод в файл , а не в конвейерscript.php
, вы увидите литерал$
.