Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从csv到阵列,并在函数中使用它_Php_Arrays_Wordpress_Buddypress_Fgetcsv - Fatal编程技术网

Php 从csv到阵列,并在函数中使用它

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

我已经在这方面工作了很长时间,现在我已经准备好屈服并手动操作了,但是因为我在这方面投入了太多的时间,我真的需要完成这项工作

我有一个csv文件,其中包含在中创建组所需的信息

我正在使用bp-groups.php中的函数(http://pastie.org/1430135)使用此脚本:

<?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
}