Как считать файл по строкам?

335
19 октября 2017, 11:48

Получаю текст в одну строку, а их в файле 4. Добавляю тег <bg> и получаю кракозябры, а также каждая буква выводится с новой строки. Хочу еще разделить строки по четным и нечетным, но нужно с этой проблемой разобраться.

$f = fopen('test.txt','r');
while (!feof($f)){
    echo fgetc($f)."<br>";
}
fclose($f)

Должно выводить так:

Advertisers study how people
If an advert can achieve this
If an advert works well, the
If advertisements are to he
Answer 1

fgetc() считывает символ, а не строку. Используйте fgets():

$f = fopen('test.txt','r');
while (!feof($f))
{
    echo fgets($f)."<br>";
}
fclose($f);

UPD: вариант с разделением строк на четные и нечетные:

$f = fopen('test.txt','r');
$n = 1;
$arr1 = $arr2 = array();
while(!feof($f))
{
    if($n%2!=0)
        $arr1[] = fgets($f);
    else
        $arr2[] = fgets($f);
    $n++;
}
fclose($f);
var_dump($arr1);
var_dump($arr2);
Answer 2

как вариант, если задача не академическая

$lines = file("test.txt");

разделение на четные и нечетные строки:

$odd = array_filter($lines, function($k){ return $k % 2; }, ARRAY_FILTER_USE_KEY);
READ ALSO
Обновление php7.0 на 7.1

Обновление php7.0 на 7.1

Я поставил php 71, удалил директорию с 7

304
Не работает file_exists на php

Не работает file_exists на php

file_exists всегда возращает false

311
API сайта для приложения на Android

API сайта для приложения на Android

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

260