第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將 API 響應(yīng)導(dǎo)出為 CSV

將 API 響應(yīng)導(dǎo)出為 CSV

PHP
一只萌萌小番薯 2023-03-04 10:46:48
我需要將我的 API 響應(yīng)導(dǎo)出到 CSV 文件中?,F(xiàn)在,我可以導(dǎo)出它并且輸出似乎循環(huán)(在我的 API 響應(yīng)中有 8 個(gè)狀態(tài)交付的項(xiàng)目)。當(dāng)我檢查我的 CSV 文件時(shí),包含 5 行具有相似的輸出,其中只有最后一個(gè)傳遞狀態(tài)的數(shù)據(jù)。我的錯(cuò)誤在哪里,有人可以幫忙嗎?:/API 請(qǐng)求的 CSV: - Tracking #,Order #,Unique ID - AB74832493,0dajKDhsa,478324 - CD78437294,kDHIdsan98,768542API響應(yīng):Array(    [status] => delivered    [last_trace] => 2020-04-21 13:10:00 : Shipment Delivered    [last_action_date_time] => 2020-04-21 13:10:12)Array(    [status] => delivered    [last_trace] => 2020-02-29 12:55:00 : Shipment Delivered    [last_action_date_time] => 2020-02-29 12:55:51)控制器:public function getstatusbyid()    {    $csv_file = file('C:\wamp64\www\testing\application\csv\packet.csv');    $csv_data = [];    foreach ($csv_file as $line) {        $csv_data[] = str_getcsv($line);    }    $order_no = json_encode(array_column($csv_data, '0'));    $tracking = json_encode(array_column($csv_data, '1'));    $unique_id = array_column($csv_data, '2');    $access_key = 'SOMETHING';    foreach ($unique_id as $i => $id) {        $url = "https://track.my/api/getstatus/$id";        $data = array(            'unique_id'       => $id,            'access_key'      => $access_key        );        $data_string = json_encode($data);        $curl = curl_init();        curl_setopt($curl, CURLOPT_URL, $url);        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);        curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);        curl_setopt($curl, CURLOPT_TIMEOUT, 15);        $result = curl_exec($curl);        curl_close($curl);        $resultinfo = json_decode($result, true);        echo '<pre>';        print_r($resultinfo);        $status = $resultinfo["status"];        $date = $resultinfo["last_action_date_time"];        $resultdata = array();        if ($status == 'delivered') {            foreach ($resultinfo as $item) {                $resultdata[] = array(                    'status'    => $status,                    'date'      => $date                );            }
查看完整描述

1 回答

?
qq_花開花謝_0

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊

問題是您反復(fù)重新打開(并重新創(chuàng)建)CSV 文件。您可以將 'w' 更改為 'a' 以附加,或者甚至更好:將調(diào)用移至fopen()外部fclose(),foreach ($unique_id as $i => $id) {這樣您就不會(huì)每次都重復(fù)重新打開文件。


當(dāng)你這樣做的時(shí)候,你還應(yīng)該檢查fopen()失敗。


public function getstatusbyid()

    {


    $csv_file = file('C:\wamp64\www\testing\application\csv\packet.csv');

    $csv_data = [];

    foreach ($csv_file as $line) {

        $csv_data[] = str_getcsv($line);

    }


    $order_no = json_encode(array_column($csv_data, '0'));

    $tracking = json_encode(array_column($csv_data, '1'));

    $unique_id = array_column($csv_data, '2');

    $access_key = 'SOMETHING';


    if ( FALSE === ( $fp = fopen('C:\wamp64\www\testing\application\csv\track.csv', 'w') ) ) {

        die( "Error opening CSV file." ); // TO DO: handle this better

    }


    foreach ($unique_id as $i => $id) {

        $url = "https://track.my/api/getstatus/$id";


        $data = array(

            'unique_id'       => $id,

            'access_key'      => $access_key

        );


        $data_string = json_encode($data);


        $curl = curl_init();

        curl_setopt($curl, CURLOPT_URL, $url);

        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

        curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($curl, CURLOPT_TIMEOUT, 15);


        $result = curl_exec($curl);


        curl_close($curl);


        $resultinfo = json_decode($result, true);

        echo '<pre>';

        print_r($resultinfo);


        $status = $resultinfo["status"];

        $date = $resultinfo["last_action_date_time"];


        $resultdata = array();

        if ($status == 'delivered') {

            foreach ($resultinfo as $item) {


                $resultdata[] = array(

                    'status'    => $status,

                    'date'      => $date

                );

            }


            foreach ($resultdata as $fields) {

                fputcsv($fp, $fields);

            }


        }

    }


    fclose($fp);

}


查看完整回答
反對(duì) 回復(fù) 2023-03-04
  • 1 回答
  • 0 關(guān)注
  • 141 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)