Php 从csv到阵列,并在函数中使用它
我已经在这方面工作了很长时间,现在我已经准备好屈服并手动操作了,但是因为我在这方面投入了太多的时间,我真的需要完成这项工作 我有一个csv文件,其中包含在中创建组所需的信息 我正在使用bp-groups.php中的函数(http://pastie.org/1430135)使用此脚本:Php 从csv到阵列,并在函数中使用它,php,arrays,wordpress,buddypress,fgetcsv,Php,Arrays,Wordpress,Buddypress,Fgetcsv,我已经在这方面工作了很长时间,现在我已经准备好屈服并手动操作了,但是因为我在这方面投入了太多的时间,我真的需要完成这项工作 我有一个csv文件,其中包含在中创建组所需的信息 我正在使用bp-groups.php中的函数(http://pastie.org/1430135)使用此脚本: <?php ini_set('display_errors', true); error_reporting(E_ALL); include "../../../wp-load.php"; $groups
<?php
ini_set('display_errors', true);
error_reporting(E_ALL);
include "../../../wp-load.php";
$groups = array();
if (($handle = fopen("groupData.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
$group = array('group_id' => $data[0],
'creator_id' => '1',
'name' => $data[1],
'description' => $data[2],
'slug' => groups_check_slug(sanitize_title(esc_attr($data[3]))),
'date_created' => gmdate( "Y-m-d H:i:s" ),
'status' => 'public',
'enable_forum' => '1'
);
$groups[] = $group;
}
fclose($handle);
}
foreach ($groups as $group) {
groups_create_group($group);
}
print_r($groups);
?>
但是,其目的是从csv文件中创建组,但实际上并非如此。我做错了什么?根据我的经验,PHP的CSV功能不太好用,或者,它只适用于特定格式的文件。CSV文件可以以不同的格式结束,这取决于您使用的格式,如Excel。您可能需要仅使用fgets()而不是fgetcsv()创建一个自定义解析器,然后分解分隔符上拉入的每一行,这与fgetcsv应该做的差不多
也可以考虑像
之类的东西。while(!feof($handle))
{
$data = fgetcsv($handle, 1000, ";");
//stuff
}
@安德斯-csv看起来怎么样;组名1;有趣的描述1;groupname14列,数百行和;作为分隔符。显示几行csv,或以完全相同的方式格式化的伪行。等等,用于获取打印输出的csv是否如下所示2;组名1;有趣的描述1;组名1(换行)3;组名2;有趣的描述2;groupname2等。如果是这样,CSV看起来是正确读取的。问题出在添加组功能中。尝试检查wp-load.php的include路径,尝试将其设置为文件的绝对路径,而不是相对路径,如/home/user/public\u html/wp\u includes/wp-load.php或它所在的任何文件夹;在$data=的末尾,如果您只是复制和粘贴,那么它尝试执行的下一个操作是不期望的,因此是意外的变量。
while(!feof($handle))
{
$data = fgetcsv($handle, 1000, ";");
//stuff
}