Я планирую извлечь содержимое из текстового файла с именем itest.txt
, который состоит из 100 000 номеров, по одному номеру на каждой строке.Неопределенное смещение при использовании explode() для текстовых файлов
Я напечатал содержимое $contents
, которое имеет тип string
, поэтому все числа разделены пробелом.
После использования explode()
Я предположил, что $ints
будет содержать одно число на индекс, но это не тот случай. Я пытаюсь иметь один номер на индекс i.e $ints[0]
= первый номер и так далее. Позже я хочу преобразовать их в целые числа, но, похоже, я не могу справиться с проблемой строкового массива. В результате я получаю ошибку Undefined offset.
Пожалуйста, вернитесь ко мне, если мой вопрос не ясен, и я немного опасаюсь кода в цикле for, не выглядит очень профессиональным.
Вот мой код:
$filename = 'C:\xampp\htdocs\coInv\itest.txt';
$fd = fopen($filename, "r");
$contents = fread($fd, filesize($filename));
$ints = explode(" ", $contents);
echo $ints[0]; // displays all the elements of the string.
for($i=0 ; $i<100000 ;)
{
$ints[$i] = int($ints[$i]);
echo $ints[$i++];
}
Что ваш вопрос? И какую часть сообщения об ошибке вы не понимаете конкретно? И почему бы вам не использовать функцию ['file'] (http://php.net/file), например:' $ ints = array_map ('intval', file ($ filename)); ' – hakre