2015-02-23 2 views
0

Функция PHP explode() помещает все в первую переменную массива. Я последовал примеру на: explodePHP explode() помещает все в первый элемент массива

Файл содержит следующую строку:

My CV_98KB_PDF(Adobe Reader)_YES - Use this form: Contact Form_/docs/CV.pdf

Я хочу, чтобы разбить строку, считанную из файла на отдельные элементы массива, но он разбивает их на только первый.

$doclist = "./docs/documentlist.txt"; 
$filestr = readfile($doclist); 
$docProp = explode("_", $filestr); 

echo $docProp[0]; 
echo $docProp[1]; 

$docProp[0] содержит полную строку вместо My CV. Почему это так?

С уважением.

+0

Я ожидаю, что это поместить все в массив - так '$ docProp [0] = My CV',' $ docProp [1] = 98KB' и так далее , – BartWD

+0

любезно показать, что написано на файле documentlist.txt, только образец –

+1

Вместо этого вы использовали 'file_get_contents()'? –

ответ

0

удалось решить эту:

$doclist = "./docs/documentlist.txt"; 
$docfile = fopen($doclist, "r") or die("file error!"); 

while (!feof($docfile)) { 

    $docProp = explode('_', fgets($docfile)); 

}; 
fclose($docfile); 

Вместо использования readfile() я использовал fopen, feof и fgets, чтобы прочитать файл и взорвать его.

С уважением.

0

Ваша строка состоит из «/» так основано на том, что мы должны взорвать

$doclist = "./docs/documentlist.txt"; 
$filestr = readfile($doclist); 
$docProp = explode("/", $filestr); 

echo $docProp[0]; 
echo $docProp[1]; 
2

readfile() выводит файл в браузер и возвращает количество байт, так что вы видели на странице является результатом readfile(), не echo $docProp[0];. Что вам нужно сделать, это использовать file_get_contents():

$doclist = "./docs/documentlist.txt"; 
$filestr = file_get_contents($doclist); 
$docProp = explode("_", $filestr); 

echo $docProp[0]; 
echo $docProp[1]; 
Смежные вопросы