2010-03-09 56 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 2013-05-28 19:27:21

1

兩者之間的差爆炸()和str_split()是一個爆炸使用字符分割上,並且在需要str_split的字符數。因此,除非記錄數據$ transData中的字段長度完全相同,否則這將需要額外的代碼。如果所有字段/記錄長度相同,則可以放入該函數。因此,如果記錄中的每個字段的長度爲10個字符,則可以執行以下操作:

$transArry = str_split($transData, 10);