Php 捕获Webhook条目并放置在新的.csv行上

Php 捕获Webhook条目并放置在新的.csv行上,php,Php,我试图将webhook数据添加到一个创建的.CSV文件中(如果不存在),并将数据添加到同一个.CSV文件的新行中(如果存在)。我遇到的问题是,当webhook第一次捕获数据时,我可以创建新的.CSV文件并添加数据。如果webhook捕捉到一组不同的数据,则不会创建包含该信息的新行,甚至不会将其添加到.CSV文件中。我做错了什么 以下是一个有效负载示例: Array ( [lead_id] => lead_id1 [form_id] => form_id1

我试图将webhook数据添加到一个创建的.CSV文件中(如果不存在),并将数据添加到同一个.CSV文件的新行中(如果存在)。我遇到的问题是,当webhook第一次捕获数据时,我可以创建新的.CSV文件并添加数据。如果webhook捕捉到一组不同的数据,则不会创建包含该信息的新行,甚至不会将其添加到.CSV文件中。我做错了什么

以下是一个有效负载示例:

    Array
(
    [lead_id] => lead_id1
    [form_id] => form_id1
    [user_column_data] => Array
        (
            [0] => Array
                (
                    [column_name] => Full Name
                    [string_value] => John Doe
                )

            [1] => Array
                (
                    [column_name] => User Phone
                    [string_value] => 12345678
                )

            [2] => Array
                (
                    [column_name] => User Email
                    [string_value] => abc@123.com
                )

        )

    [api_version] => 1.0
    [google_key] => secret
)
这是我的密码:

<?php
$data = file_get_contents("php://input");
$events = json_decode($data, true);

$users  = $events['user_column_data'];

 $columns = false;

 $filename = "user_responses.csv";

 if( ! file_exists( $filename ) ){
     $columns = array( 
         "User Name", 
         "User Phone", 
         "User Email Address"
     );
 }

foreach ($users as $key => $value) {
    if( $columns ){
        $columns[] = strip_tags( $value['column_name'] ) . " ({$value['string_value']})";
    }

}     

$fp = fopen( $filename, "a+" );
if( $columns ){
    fputcsv( $fp, $columns );
}
fclose( $fp );

http_response_code(200);

仅当文件不存在时才初始化
$columns
数组。如果文件存在,您的
$columns
未定义,并且
foreach($users…
循环不会在那里添加任何条目。您应该清除
If($columns)
检查

此外,您的
foreach($users…
循环迭代整行,而不是字段。循环中的每个
$value
都是一行,一列数组