在PHP中读取和显示两个CSV文件

时间:2014-01-29 21:54:44

标签: php

我是PHP的新手,我学习的最好方法是测试项目,所以......我要做的是创建一个程序,让用户定义代码字符串的核心,以及然后上传一个放入其中的变量csv。我正在使用的示例是制作一组HTML列表项,因此最终代码为:

<li><span class="label">VARAIBLE1:</span> <span class="value">VARIABLE2</span></li>

因此,对于VARIABLE1,他们可以上传像CSS这样的csv项目 蝙蝠侠,加尔文,西蒙,洛基 对于VARIABLE2,单独的csv与
Robin,Hobbes,Garfunkel,Bullwinkle

这将反过来生成

<li><span class="label">Batman:</span> <span class="value">Robin</span></li>
<li><span class="label">Calvin:</span> <span class="value">Hobbes</span></li>
<li><span class="label">Simon:</span> <span class="value">Garfunkel</span></li>
<li><span class="label">Rocky:</span> <span class="value">Bullwinkle</span></li>

到目前为止,这是我一起拼凑的PHP。

$t1 = htmlspecialchars('<li><span class="label">');
    $csv1 = fopen('http://viai.co/viai/viaidev/stringvariable/String%20Creator/csv1.csv', 'r');
    fclose($csv1);
    $t2 = htmlspecialchars('</span><span class="value">');
    $csv2 = fopen('http://viai.co/viai/viaidev/stringvariable/String%20Creator/csv2.csv', 'r');
        while (($line2 = fgetcsv($csv2)) !== FALSE) {
        //$line is an array of the csv elements
        print_r($line2);
        }
    fclose($csv2);
    $t3 = htmlspecialchars('</span></li>');


    $len = max(count($csv1), count($csv2));
        for($i=0; $i<$len; $i++){
        $csv1 = isset($csv1[$i]) ? $csv1[$i] : '';
        $csv2 = isset($csv2[$i]) ? $csv2[$i] : '';
        echo $t1.$csv1.$t2.$csv2.$t3;}



在某些时候,我能够使用我在PHP中键入的数组,但我希望从上传的CSV中读取它。任何指导都很棒,并提前感谢!

1 个答案:

答案 0 :(得分:0)

您已经提到您的数据是CSV格式,但每行的格式为一项,因此我考虑了"\n"而不是","explode

Label 1
Label 2
Label 3
...

Description 1
Description 2
Description 3
...

所以你可以file_get_contents然后explode数据。

$data1 = file_get_contents( "http://viai.co/viai/viaidev/stringvariable/String%20Creator/csv1.csv" ,false );

$dataArray1 = explode( "\n" ,$data1 ); // Use "," instead if your data is CSV

var_dump( $dataArray1 ); // For test

$data2 = file_get_contents( "http://viai.co/viai/viaidev/stringvariable/String%20Creator/csv2.csv" ,false );

$dataArray2 = explode( "\n" ,$data2 ); // Use "," instead if your data is CSV

var_dump( $dataArray2 ); // For test

// Rest of your code to iterate through the arrays and display the info