0

私はこれに長い間取り組んできましたが、屈服して手動で行う準備ができていますが、これに非常に多くの時間を費やしてきたので、本当にこれを達成する必要があります.

BuddyPressでグループを作成するために必要な情報を含む 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);
?>

私が得るprint_rから:

Array
(
    [0] => Array
    (
        [group_id] => 2
        [creator_id] => 1
        [name] => GroupName1 
        [description] => Interesting description1 
        [slug] => groupname1 
        [date_created] => 2011-01-05 02:33:54 
        [status] => public
        [enable_forum] => 1
    )
    [1] => Array
    (
        [group_id] => 3 
        [creator_id] => 1
        [name] => GroupName2
        [description] => Interesting description2
        [slug] => groupname2
        [date_created] => 2011-01-05 02:33:54
        [status] => public
        [enable_forum] => 1
    )
)

しかし、目的はcsvファイルからグループを作成することですが、そうではありません。私は何を間違っていますか?

4

1 に答える 1

0

私の経験では、PHP の CSV はうまく機能しません。または、特定の形式のファイルでしかうまく機能しません。CSV ファイルは、Excel など、作成に使用したものに応じてさまざまな形式になる可能性があります。fgetcsv() ではなく fgets() だけを使用してカスタム パーサーを作成し、引き込まれた各行を区切り文字で展開する必要がある場合があります。

また、次のようなものを検討することもできます

while(!feof($handle))
{
    $data = fgetcsv($handle, 1000, ";");
    //stuff
}
于 2011-01-05T03:38:24.923 に答える