Php 将刮取的数据导出到CSV

Php 将刮取的数据导出到CSV,php,web-scraping,export-to-csv,Php,Web Scraping,Export To Csv,我目前正在做一个项目,从网站上搜集数据。我已经用下面的代码收集了我需要的所有数据,但是我想知道将这些数据输出到逗号分隔的CSV文件中的最简单方法是什么。我原本计划将所有内容移动到一个表中,然后以这种方式导出,但我不知道这是否是最有效的方法 <?php $html = file_get_contents("http://www.zillow.com/homes/for_sale/Alamance-County-NC/2117_rid/36.181671,-78.9

我目前正在做一个项目,从网站上搜集数据。我已经用下面的代码收集了我需要的所有数据,但是我想知道将这些数据输出到逗号分隔的CSV文件中的最简单方法是什么。我原本计划将所有内容移动到一个表中,然后以这种方式导出,但我不知道这是否是最有效的方法

<?php 

            $html = file_get_contents("http://www.zillow.com/homes/for_sale/Alamance-County-NC/2117_rid/36.181671,-78.943291,35.912411,-79.835243_rect/10_zm/1_fr/");         

            $DOM = new DOMDocument();
            libxml_use_internal_errors(true);
            $DOM->loadHTML($html);
            $finder = new DomXPath($DOM);
            $classname = 'property-address';
            $nodes = $finder->query("//*[contains(@class, '$classname')]");

            $csv_values = array();
            foreach ($nodes as $node) {
                $csv_values[] = $node->nodeValue;     
            }
            $handle = fopen("C:\Users\Stephen\Documents\WorkCSV\work.csv", "w");
            if (false !== $handle) {
               fputcsv($handle, $csv_values);
            }

            ?>

您可以使用
fputcsv
迭代器\u to \u数组

$nodes = $finder->query("//*[contains(@class, '$classname')]");
$handle = fopen("/path/to/file.csv", "w");
if (false !== $handle) {
   fputcsv($handle, iterator_to_array($nodes));
}
或者像这样:

$csv_values = array();
foreach ($nodes as $node) {
    $csv_values[] = $node->nodeValue;     
}
$handle = fopen("/path/to/file.csv", "w");
if (false !== $handle) {
   fputcsv($handle, $csv_values);
}
在Windows平台上,请小心避开文件路径中使用的任何反斜杠,或使用正斜杠

$handle = fopen("c:\\folder\\file.csv", "r");

我能够使用Dave提供的代码将所有数据放入一个数组中。此外,在fopen中,我使用了反斜杠“\”,在切换到正斜杠“/”后,我能够产生一个错误,可以用于导出到CSV。

@dave我发现我应该使用数组来执行该命令。如何将这些对象转换为数组?每个对象包含大约20个值。我尝试了$myarray=array($node),但它只根据每个对象中的最后一个值创建一个数组,而不是整个列表。对此有什么想法吗?正如@dave所说,将文件路径中的反斜杠加倍转义,改为:
$handle=fopen(“C:\\Users\\Stephen\\Documents\\WorkCSV\\work.csv”,“w”)`第一个方法返回以下错误:可捕获致命错误:在第74行的/home/u314991906/public_html/scrap.php中,domeElement类的对象无法转换为字符串。我现在要尝试第二种方法。好的,第二种方法似乎有效,但是没有创建任何文件。我首先尝试指向FTP上的路径,然后再次指向本地计算机。两者都不起作用,但都没有给我一个错误。没有错误,但是也没有文件。我已经编辑了我的原始代码,以显示我当前正在使用的代码片段。您应该在此答案中发布您的工作解决方案并接受它(或Dave的解决方案)。它将帮助那些面临同样问题的人。