从高级自定义字段'文件'字段

时间:2016-03-05 15:54:08

标签: php wordpress csv advanced-custom-fields fgetcsv

我正在使用wordpress的高级自定义字段插件来允许用户上传CSV文件。然后我需要从该CSV文件中获取数据。我知道我需要使用fgetcsv()php函数,但我遇到了麻烦。

我可以像这样打印对象:

$file = get_field('location_info');
print_r($file);

给了我

Array ( [id] => 8 [alt] => [title] => locations [caption] => [description] => [mime_type] => text/csv [url] => http://lc.something.com/wp-content/uploads/2016/03/locations.csv )

那么如何使用PHP从该csv文件中获取数据。

我正在尝试:

$file = get_field('location_info');
$filecontents = fgetcsv($file);

但那给我错误“

Warning: fgetcsv() expects parameter 1 to be resource, array given in /var/www/websites/metromont/app/wp-content/themes/metromont/page-contact.php on line 7"

如何从中获取“资源”?

1 个答案:

答案 0 :(得分:0)

Fgetcsv() 函数需要此资源:

  

<强>处理

     

指向由fopen()popen()fsockopen()成功打开的文件的有效文件指针。

尝试使用下面的代码段来获取CSV内容:

$file = get_field( 'location_info' );

if ( $file ) {
  if ( ( $handle = fopen( $file["url"], "r" ) ) !== FALSE ) {
    while ( ( $data_row = fgetcsv( $handle, 1000, "," ) ) !== FALSE ) {
      $num = count( $data_row );
      for ($c=0; $c < $num; $c++) {
        echo $data_row[ $c ] . ", ";
      }
       echo "<br />";
    }
    fclose( $handle );
  }
}

输出样本数据:

  

id,first_name,last_name,email,gender,ip_address,

     

1,Philip,Evans,pevans0 @ hugedomains.com,男,8.106.111.3,

     

2,Raymond,Matthews,rmatthews1 @ cdbaby.com,男,165.36.29.127,

     

3,Kathy,Lawrence,klawrence2 @ usd.gov,女,17.23.224.247,