我正在使用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"
如何从中获取“资源”?
答案 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,