使用php和简单html dom将数据导出到CSV文件

使用php和简单html dom将数据导出到CSV文件,php,html,csv,dom,export,Php,Html,Csv,Dom,Export,如何将抓取的数据导出到.csv文件?我正在使用php简单html dom解析数据。代码如下: foreach ($linkoviStranica as $stranica) { $podaciStranice = "http://someurl/$stranica"; $data = file_get_html($podaciStranice); $name = $data->find('div[class="price-card-name-header-na

如何将抓取的数据导出到.csv文件?我正在使用php简单html dom解析数据。代码如下:

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

     }
 }
你能帮帮我吗?谢谢

类似这样:

// 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);

tnx这就是我要找的,经过一些小改动,我添加了标题:fputcsv($fp,array('name','online price','diff price');因为数据['name'、'online price'、'diff price']给了我一个错误。@dilesko在我的代码段中看到了第四行。它添加了这个标题。如果我的回答解决了你的问题,请接受我的回答,这样人们以后会更容易找到它。
// 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);
$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";