У меня есть многострочная строка, в которой есть 2 слова.
Я хочу в течение цикла при чтении сценария построчно
получить 1-е слово и 2-е слово.
$multilinestring="name1 5
name2 8
name3 34
name5 55 ";
Результат, который я хочу получить, пока я читаю строку строка за строкой, должен получить
Еще 2 строки
$firstword
а также $secondword
Спасибо всем заранее!
Если это действительно текстовый файл, который вы хотите прочитать, то вам лучше использовать fgets()
или прочитать файл в массив полностью с file()
и использовать explode()
после этого. Рассмотрим этот код:
$arr = file("somefile.txt"); // read the file to an array
for ($i=0;$i<count($arr);$i++) { // loop over it
$tmp = explode(" ", $arr[$i]); // splits the string, returns an array
$firstword = $tmp[0];
$secondword = $tmp[1];
}
Какой смысл использовать цикл while для этого? Используйте цикл foreach для достижения этого:
foreach (explode("\n", $multilinestring) as $line) {
$line = explode(" ", $line);
print_r($line);
}
Использовать этот:
$eachLine = explode(PHP_EOL, $multilinestring); // best practice is to explode using EOL (End Of Line).
foreach ($eachLine as $line) {
$line = explode(" ", $line);
$firstword = $line[0];
$secondword = $line[1];
}