2013-02-07 147 views
0

數據的顯示格式,我有一個CSV文件至極包含3行3列(列的名稱是:名字,姓氏和地址,修改PHP

我開發一個PHP腳本,它顯示從該文件的所有數據

<?php 
ini_set('display_errors',1); 
error_reporting(E_ALL); 

//Fichier CSV à parser 

$fichier = '/home/test.csv'; 
//On vérifie que le fichier existe bien :) 

if (file_exists($fichier)) 
{ 
//On l'ouvre en mode "read only" 
$fp = fopen($fichier, 'r'); 
//Tant que l'on n'a pas finit de lire le fichier 
while (!feof($fp)){ 
//On lit les 4096 caractères de la ligne 
$ligne = fgets($fp,4096); 
/* On met dans un tableau toutes les données, séparées par des points virgules */ 
$liste = explode(';',$ligne); 
/* On crée une colonne contenant les données pour chacune d'entre elles en parsant le tableau */ 
foreach($liste as $element) 
{ 

    if (trim($element)!=null) 
    { 
echo $element; 
echo "</br>"; 

    } 

} 

} 

//On ferme le fichier 

fclose($fp); 
} 
else 
echo "Fichier introuvable !"; 


?> 

我的目標就是以這種格式來顯示結果:

姓:... ...姓氏... ADRESS

姓:... ...姓氏廣告RESS ...

姓:... ...姓氏... ADRESS

我認爲我應該在我的代碼修改這一部分:

foreach($liste as $element) 
    { 

     if (trim($element)!=null) 
     { 
    echo $element; 
    echo "</br>"; 

     } 

    } 
+1

爲什麼不使用fgetcsv(),而不是與fgets(),然後爆炸....當PHP具有內置的功能對於這一點,使用它們 –

回答

0

試試這個

<?php 
    ini_set('display_errors',1); 
    error_reporting(E_ALL); 

    //Fichier CSV à parser 

    $fichier = '/home/test.csv'; 
    //On vérifie que le fichier existe bien :) 

    if (file_exists($fichier)) 
    { 
    //On l'ouvre en mode "read only" 
    $fp = fopen($fichier, 'r'); 
    //Tant que l'on n'a pas finit de lire le fichier 
    while (!feof($fp)){ 
    //On lit les 4096 caractères de la ligne 
    $ligne = fgets($fp,4096); 
    /* On met dans un tableau toutes les données, séparées par des points virgules */ 
    $liste = explode(';',$ligne); 
    /* On crée une colonne contenant les données pour chacune d'entre elles en parsant le tableau */ 
    if(trim($liste[0])!=null) 
    echo " firstname " . $liste[0]; 
    if(trim($liste[1])!=null) 
    echo " lastname" . $liste[1]; 
    if(trim($liste[2])!=null) 
    echo " address" . $liste[2]; 
    echo "<br/>"; 
     } 

    } 
+0

在我以前的代碼,我用這個測試:如果(TRIM( $ element)!= null),所以我們應該在新代碼中添加一個測試 –

+0

我編輯了我的答案,因此它可以在顯示之前進行測試。 –

0

我嘗試這樣的事情。也許它會幫助你。

while (!feof($fp)) 
{ 
    $ligne = fgets($fp,4096); 
    $liste = explode(';',$ligne); 

    if($liste[0] != "firstname" && $liste[1] != "lastname" && $liste[2] != "address") 
    { 
     echo " <strong>firstname</strong> : " . $liste[0]; 
     echo " <strong>lastname</strong> : " . $liste[1]; 
     echo " <strong>address</strong> : " . $liste[2]; 
     echo "<br/>"; 
    } 
}