2017-09-14 37 views
0

如何将抓取的数据导出为.csv文件?我使用PHP简单的HTML DOM解析数据。下面是代码:使用php和简单的html dom将数据导出为CSV文件

foreach ($linkoviStranica as $stranica) 
{ 
    $podaciStranice = "http://someurl/$stranica"; 

    $data = file_get_html($podaciStranice); 


    $name = $data->find('div[class="price-card-name-header-name"]'); 
    $onlinePrice = $data->find('div[class="price-box online"]'); 
    $diffPrice = $data->find('div[class="price-box paper"]'); 

    echo "<strong>".$name[0]->innertext."<strong>"."<br>"; 
     if (!empty($onlinePrice[0]->innertext)) 
     { 
     echo $onlinePrice[0]->innertext."<br>"; 
     } 
    if (!empty($diffPrice[0]->innertext)) 
    { 
     echo $diffPrice[0]->innertext."<br>"; 

     echo "---------------------"."<br>"; 

    } 
} 

我要出口,$名称,$ onlinePrice,$ diffPrice到CSV文件与头的格式如下:

name onlinePrice diffPrice 
example 10   44 
xxxx  412  461 
zzzzz  1414   41 

你能帮帮我吗?谢谢!

回答

1

事情是这样的:

// Define a array to hold all the data 
$data = []; 

// OR use this line if you want the headers with names on the first line of the file 
// $data = [['name', 'onlinePrice', 'diffPrice']]; 

// Loop the raw data 
foreach ($linkoviStranica as $stranica) { 
    $podaciStranice = "http://someurl/$stranica"; 
    $data = file_get_html($podaciStranice); 

    $name = $data->find('div[class="price-card-name-header-name"]'); 
    $onlinePrice = $data->find('div[class="price-box online"]'); 
    $diffPrice = $data->find('div[class="price-box paper"]'); 

    // Add current row to out array 
    $data[] = [ 
     $name[0]->innertext, 
     $onlinePrice[0]->innertext, 
     $diffPrice[0]->innertext 
    ]; 
} 

// Open a new file. Replace the file name with the name you'd like 
$fp = fopen('file.csv', 'w'); 

// Loop each row in the data array 
foreach ($data as $fields) { 
    // This method converts a row to a CSV line (http://php.net/manual/en/function.fputcsv.php) 
    fputcsv($fp, $fields); 
} 

// Close the file handler 
fclose($fp); 
+0

TNX这就是我一直在寻找,有小的变化,我已经加上了首本:fputcsv($ FP,阵列( '名','在线价格','差价'));因为data ['name','online price','diff price']给我一个错误。 – dilesko

+0

@dilesko查看我的代码片段中的第四行。它添加了这个头文件。如果它解决了你的问题,请接受我的答案,以便以后人们更容易找到答案。 – OptimusCrime

0
$header ="SNo , Order Date , Order Number , Compaign , Amount , Order Status , Used Date , Cancel Reason , Order Commision , Payment Date , Payment Status \n"; 
      $header1 =$header ; 
$result=''; 
foreach ($data as $fields) { 
    $result= 'echo your data with coma seprated '."\n"; 
} 
$all=$header.$result; 
$name="report.csv"; 
header("Content-type: application/csv"); 
header("Content-Disposition: attachment; filename=".$name); 
header("Pragma: no-cache"); 
header("Expires: 0"); 
print "$header1 $result";