【问题标题】:modify display format of data in php修改php中数据的显示格式
【发布时间】:2013-02-07 11:34:43
【问题描述】:

我有一个 csv 文件,它包含 3 行和 3 列(列的名称是:名字、姓氏和地址

我开发了一个 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 !";


?>

我的目标是以这种格式显示结果:

名字:...姓氏...地址...

名字:...姓氏...地址...

名字:...姓氏...地址...

我认为我应该在我的代码中修改这部分:

foreach($liste as $element)
    {

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

       }

    }

【问题讨论】:

  • 为什么不使用 fgetcsv() 而不是 fgets() 然后爆炸......当 PHP 有内置函数时,使用它们

标签: php csv


【解决方案1】:

我尝试这样的事情。也许它会帮助你。

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/>";
    }   
}

【讨论】:

    【解决方案2】:

    试试这个

     <?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/>";
           }
    
        }
    

    【讨论】:

    • 在我之前的代码中我使用了这个测试:if (trim($element)!=null) 所以我们应该在新代码中添加一个测试
    猜你喜欢
    • 2015-03-18
    • 2012-07-23
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    相关资源
    最近更新 更多