PHP – while loop (! Feof ()) не выводит / показывает все

Я пытаюсь читать (и эхо) все .txt-файл.

Это мой код:

$handle = @fopen("item_sets.txt", "r"); while (!feof($handle)) { $buffer = fgets($handle, 4096); $trimmed = trim($buffer); echo $trimmed; } 

Это мой «item_sets.txt»: http://pastebin.com/sxapZGuW

Но он не отгоняет все (и меняет, насколько он показывает, в зависимости от того, сколько и сколько символов я повторяю после него). var_dump() показывает мне, что последняя строка никогда не заканчивается печатью. Это выглядит так:

" string(45) ""[cu_well_tra . Но если я поставлю

echo "whateverthisisjustarandomstringwithseveralcharacters"; ,

мои последние выходные строки выглядят следующим образом:

" string(45) ""[cu_well_traveled_ak47]weapon_ak47" "1" " string(5) "} "

В основном мой код не печатает / не повторяет все, что ему нужно, или, по крайней мере, не показывает его.

Заранее спасибо 🙂

Thats, потому что ваш тест для EOF перед тем, как вы выведете свой последний прочитанный

Попробуйте это с тестом на EOF как часть процесса чтения

 <?php $line_count = 0; $handle = fopen("item_sets.txt", "r"); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; $line_count++; } } else { echo 'Unexpected error opening file'; } fclose($handle); echo PHP_EOL.PHP_EOL.PHP_EOL.'Lines read from file = ' . $line_count; ?> 

Также я удалил @ infront из fopen его плохую практику, чтобы игнорировать ошибки, и намного лучше практиковать, чтобы искать их и иметь дело с ними.

Я скопировал ваши данные в файл tst.txt и запустил этот точный код

 <?php $handle = fopen('tst.txt', 'r'); if ($handle) { while (($buffer = fgets($handle, 4096)) !== false) { $trimmed = trim($buffer); echo $trimmed; } } else { echo 'Unexpected error opening file'; } fclose($handle); 

И он сгенерировал этот выход (только небольшая часть, показанная здесь)

 "item_sets"{"set_community_3"{"name" "#CSGO_set_community_3""set_description" "#CSGO_set_community_3_desc""is_collection" 

И последний выход

 [aa_fade_revolver]weapon_revolver" "1" 

Какая последняя запись в файле данных