2016-08-01 5 views
-1

Я новичок в PHP и пытаюсь понять, почему после первой строки у меня есть «_» в начале вывода?PHP foreach explode

$myFile = fopen("sample.txt", "r"); 

while($strBuffer = fgets($myFile, 180)) { 
$strExplode = explode(" ", $strBuffer); 

foreach ($strExplode as $value) { 
    echo $value . "_"; 
} 

Выход:

This_is_the_first_test_line. 
_This_is_the_second_test_line. 
_This_is_the_third_test_line._ 

EDIT: Теперь я считаю, что последний элемент в «линии» массива хранения новой строки .. заставляя его печатать _ на новой линии

+1

Ух, потому что вы выводите '_' с каждым эхом? – Epodax

+0

Но только тогда, когда цикл Foreach запущен. IE, когда он переместится на новую строку, почему есть _ в первую очередь печать? – NZSteve

+0

могут быть пустые строки в исходном файле, которые затем оставят вас с одним подчеркиванием? – RamRaider

ответ

0

Попробуйте

$myFile = fopen("sample.txt", "r"); 

while($strBuffer = fgets($myFile)) { 
    $temp= str_replace(" ","_", $strBuffer); 
    echo $temp.'<br>'; 
} 

Если вы хотите использовать массив попробовать этот

$myFile = fopen("sample.txt", "r"); 

while($strBuffer = fgets($myFile)) { 
    $strExplode = explode(" ", $strBuffer); 

     foreach ($strExplode as $value) { 
     if($value>"") 
     echo $value . "_"; 
    } 
+0

Спасибо, я пытался использовать массив, чтобы разбить слова на отдельные элементы .. (Но ваше решение работает тоже :)) – NZSteve

+0

Я обновляю свой пост – paranoid

+0

Нет Luck there. – NZSteve