
Александр
06.09.2018
15:00:19

Shmaltorhbooks
06.09.2018
15:00:33
git commit)
а гит сам предложит исправить))

Maksim
06.09.2018
15:00:51

Google

Ivan
06.09.2018
15:01:02
посмотрите на скрин, представьте, что строка N3 очень длинная из-за того что file() не воспринял \n как line ending

Maksim
06.09.2018
15:01:41
бля, как бот...

Александр
06.09.2018
15:01:50
тебе уже столько вариантов накидали)

Ivan
06.09.2018
15:03:07
спасибо

Maksim
06.09.2018
15:04:07
привёл всё к одному варианту переноса, а если нужно построчно чёт делать, то как писал выше:
$lines = yield from \file('file.csv')
задача на 20 секунд

Ivan
06.09.2018
15:10:13
Не подходит такой вариант мне
?

Maksim
06.09.2018
15:10:45
бля, точно бот

Ivan
06.09.2018
15:11:05
)

Maksim
06.09.2018
15:11:34

Ivan
06.09.2018
15:11:56
В доке написано возвращает array

Google

Maksim
06.09.2018
15:12:14
круто

Ivan
06.09.2018
15:12:32
А array лежит в памяти

Maksim
06.09.2018
15:12:38
гениально :)

Ivan
06.09.2018
15:13:10

Maksim
06.09.2018
15:17:59
https://paste.ofcode.org/32UdKVbevaDMSVijMUDhZ43
попробуй перестать задавать тупые вопросы и подумай.

Ivan
06.09.2018
15:19:27

Vitaly
06.09.2018
15:19:36
Может быть он имеет ввиду то, что в памяти всё равно окажется слишком длинная строка?

Ivan
06.09.2018
15:19:38
Надо вызвать next

Maksim
06.09.2018
15:19:41
серьёзно?)

Ivan
06.09.2018
15:19:49

Maksim
06.09.2018
15:19:54
бот всё же..

Ivan
06.09.2018
15:19:56

Maksim
06.09.2018
15:20:13

Ivan
06.09.2018
15:20:51
Из-за неправильной интерпретацией конца строки функцией file

Maksim
06.09.2018
15:21:07
sed, tr - > google
ты проблему решить хочешь, или мозг людям поебать?)

Ivan
06.09.2018
15:22:27
И объясняю почему
Буду использовать sed

Maksim
06.09.2018
15:22:53
да, я очень ахудивился высеру про генераторы

Google

Ivan
06.09.2018
15:23:07

Maksim
06.09.2018
15:23:29
что т.е.?

Ivan
06.09.2018
15:23:46
Что за высер про генераторы?

Maksim
06.09.2018
15:23:57
тебе из функции возвращается генератор. Бери и используй. в чём проблема?
какой next к хренам?

Anton
06.09.2018
15:24:17
у Макса агр когда кто-то не понимает генераторы :)

Ivan
06.09.2018
15:24:19
В том, что file() загрузит все строки в память

Maksim
06.09.2018
15:24:39

Ivan
06.09.2018
15:24:40

Maksim
06.09.2018
15:25:13

Ivan
06.09.2018
15:25:30
Я серьезно

Maksim
06.09.2018
15:25:39
я те код даже привёл... ай, ну в задницу этих ларавель девелоперов

Anton
06.09.2018
15:26:13

Maksim
06.09.2018
15:26:34

Ivan
06.09.2018
15:26:37

Maksim
06.09.2018
15:27:39

Anton
06.09.2018
15:27:51
Погрешность на скрипт + память на самую длинную строку в файле

Ivan
06.09.2018
15:27:53

Maksim
06.09.2018
15:28:39
ты имеешь хоть какое-то представление о том, как работают генераторы?

Ivan
06.09.2018
15:28:45
Да

Google

Maksim
06.09.2018
15:28:49
окей

Vitaly
06.09.2018
15:29:12

Maksim
06.09.2018
15:29:28

Herman
06.09.2018
15:29:31

Ivan
06.09.2018
15:29:51
Ладно, чуть позже проверю что да как, может, я и не прав
Спасибо всем

Maksim
06.09.2018
15:31:32
в любом случае, тебе не надо ничего открывать, если выполнить замену не средствами пхп
и всё, что мы тут придумываем - херь собачья. Вопрос разных переводов решается быстро и просто, минуя супер быстрый и оптимальный пхп
тот же tr, тот же sed (парадоксально, но сам про него упомянул). Нахер вся эта возня с циклами - ниясна.

Ivan
06.09.2018
15:36:08

Admin
ERROR: S client not available

Maksim
06.09.2018
15:37:29
Нужно наличие sed
sudo apt-get install sed
это проще, чем придумывать херню средствами, которые для этого не предназначены

Ivan
06.09.2018
15:38:36

Maksim
06.09.2018
15:38:45
любой вариант, при чём.
медленно, неоптимально, дорого и глупо.

Dmitry
06.09.2018
17:21:11
@desper1989 а с каких времен file стал генератором?

Александр
06.09.2018
17:27:01

Dmitry
06.09.2018
17:28:21
А теперь давай своими словами и по полочкам, как твой потрясающий скриншот отвечает на вопрос “с каких времен file стал генератором”

Александр
06.09.2018
17:29:45
Получает значения из другого генератора, объекта Traversable, или массива используя yield from

Google

Evgenii
06.09.2018
17:30:02
?

Александр
06.09.2018
17:30:06
Что тут своими словами нужно?)

Shmaltorhbooks
06.09.2018
17:30:22
Но чтоб получить из другого массива - надо чтоб этот массив существовал, как я понял
Если из генератора - он будет дёргаться пока отдаёт
А если file отдаёт массив, то он сначала его сформируеьт, а потом отдаст

Dmitry
06.09.2018
17:31:14

Shmaltorhbooks
06.09.2018
17:31:16
Если, конечно, file не генератор

Александр
06.09.2018
17:31:21

Shmaltorhbooks
06.09.2018
17:31:44
Нет
То есть file сначала прочитает весь файл, а потом отдаст массив?

Александр
06.09.2018
17:32:30

Dmitry
06.09.2018
17:33:37
file не генератор, а значит он загрузит массив весь в память
а память нужно мерять memory_get_peak_usage, и не будет удивлений тогда

Александр
06.09.2018
17:37:02

Shmaltorhbooks
06.09.2018
17:38:04
Максим тоже звучит логично, но топит в другую степь) пробовать надо всегда))

Dmitry
06.09.2018
17:39:57
http://php.net/manual/ru/language.generators.overview.php - тут вот первый коммент как читать файл, что бы он не жрал память

Ivan
06.09.2018
17:41:35
ну хоть кто-то понял, что я имею ввиду

Александр
06.09.2018
17:41:52
А кто-то затестил?)

Ivan
06.09.2018
17:42:40
https://3v4l.org/magEE

Shmaltorhbooks
06.09.2018
17:44:19
Так то fopen
Он и без генераторов не читает весь файл

Dmitry
06.09.2018
17:45:08
я затестил, память жрет, чудес не случается

Александр
06.09.2018
17:52:53
function loadLines(): \Generator {
$fp = fopen('./large_file.txt', 'rb');
while(($line = fgets($fp)) !== false)
yield $line;
fclose($fp);
}
вотт так вот загрузит в память или нет?