изменить поведение file так, чтобы флаги FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES
по-умолчанию не действовали?
то есть на стабильном дебиане так:
user@deb:~$ echo "<?php var_dump(file('http://127.0.0.1/empty.txt'))?>" | php56
выдает array(0) {}
а на стабильном арче так
user@arch-linux:~$ echo "<?php var_dump(file('http://127.0.0.1/empty.txt'))?>" | php56
выдает array(1) {
[0]=>
string(2) "
"
}
но есть добавить вторым аргументом те флаги - то все работает корректно.
ls -lah empty.txt показывает, что там 0 байт.
если запросить через curl из консоли либо через php56 -a
то приходит пустая строка.
ты уверен, что файл по ссылке одинаковый в обоих случаях? т.е. по ссылке http://127.0.0.1/empty.txt на обоих компах возвращается реально пустой файл?
Да. Файл точно пустой в обоих случаях.
попробуй для теста вот: <?php header('Content-Type: text/plain; crharset=utf-8'); error_reporting(E_ALL|E_STRICT); $base_url = 'https://test.weeb.nonrp.nl/'; echo "filename\tfile()\tfile_get_contents()\r\n"; foreach(['empty','lf','crlf','empty-bom'] as $fn){ $url="{$base_url}{$fn}.txt"; echo "{$fn}.txt\t"; echo json_encode(file($url))."\t"; echo json_encode(file_get_contents($url))."\r\n"; }
file -bi empty.txt
Обсуждают сегодня