PHP и stdin / stdout: откуда взята дополнительная новая строка в начале? - PullRequest
0 голосов
/ 25 ноября 2011

Я использую PHP для обработки некоторых файлов (запуска regexp, replace и т. Д.), И я заметил, что после обработки всегда в начале всех файлов, которые я обрабатываю, всегда есть новая строка.Я сузил его до следующих нескольких строк:

#!/usr/bin/php

<?php
$test = file('php://stdin');

file_put_contents('php://stdout',$test);

?>

Если вы сохраните это и передадите какой-то текст через него, вы заметите, что в начале вывода есть новая строка.Откуда оно и как от него избавиться?Спасибо!

PS: версия PHP: PHP 5.3.6 с Suhosin-Patch (cli) (сборка: 8 сентября 2011 19:34:00)

Ответы [ 2 ]

8 голосов
/ 25 ноября 2011

Эмм, это между линией Шебанга и <?php. Я думаю, вы можете легко понять, как его удалить.

0 голосов
/ 25 ноября 2011
#!/usr/bin/php
    <---blank line here
<?php

Помните, что PHP-скрипта не существует. Есть только файлы, в которые встроены блоки кода PHP. Все, что находится за пределами набора тегов <?php ?>, рассматривается механизмом PHP как «вывод». Это означает, что будет выведена пустая строка между shebang и открывающим тегом <?php.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...