2010-03-09 2 views
1
$transData = fgets($fp); 
while (!feof ($fp)) 
{ 
    $transArry = explode(" ", $transData); 
    $first = $transArry[0]; 
    $last = $transArry[1]; 
    $Sub = $transArry[2]; 
    $Grade= $transArry[3]; 
    echo "<table width='400' ><colgroup span='1' width='35%' /><colgroup span='2' width='20%' /> <tr><td> ".$first." ".$last." </td><td> ".$Sub." </td><td> ".$Grade." </td></tr></table>"; 
    $transData = fgets($fp); 
} 

Мой учитель хочет меня изменить это использование explode() к str_split(), сохраняя при этом тот же результат. Как мне это сделать?Заменить использование взрываются() с str_split()

ответ

2

Если вы используете str_spilt, вы не можете использовать разделитель. str_split разбивает символ строки на символ и сохраняется в каждом индексе массива. И также используя str_split(), мы можем указать предел строки для хранения в индексе массива. Если вы используете только функцию split(), вы можете получить тот же результат, что и explode().

Вместо взрыва используйте следующую линию.

$transArry = split(" ",$transData); 
+0

Примечание: 'split' устарел с PHP 5.3; 'preg_split' и' explode' являются рекомендуемыми альтернативами (первый для, если вам нужно регулярное выражение, последнее для расщепления обычной строкой). – cHao

1

Разница между этими двумя взрывается() и str_split() является то, что взрывается используют символ для разделения на и str_split требует количества символов. Поэтому, если поля в данных записи $ transData не имеют одинаковой длины, для этого потребуется дополнительный код. Если все поля/записи имеют одинаковую длину, вы можете просто отбросить эту функцию. Поэтому, если каждое поле в записи составляет 10 символов, вы можете:

$transArry = str_split($transData, 10);