Chuyên mục Các lỗi thường gặp

Xử lý tình huống curl_setopt_array() trả về data là json có chứa giá trị Boolean (true) khi lấy Api

Đăng bởi: Minacode|Cập nhật:12-12-2023

Khi các bạn thực hiện lấy Api của một bên thứ ba bằng php. Chúng ta sẽ thường thấy nhà cung cấp sẽ dùng hàm curl_init(); curl_setopt_array (); và curl_exec() để trả về dữ liệu Json. Tuy nhiên có một số trường hợp Json trả về  có chứa giá trị boolean true khiến bạn khó khăn trong việc lấy và xử lý dữ liệu. Đặc biệt là bạn nào đang dùng Ajax.

Trong tình huống này bạn cần lưu ý để xử lý như sau:

1, Bạn cần dùng dùng echo để trả về kết quả, không dùng return

2, Bạn cần set tham số CURLOPT_RETURNTRANSFER  là true

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

code sau khi thêm:

		$curl = curl_init();
        $fileName = "storage/images/1702344040-CCCD.jpg";
        $finfo = finfo_open(FILEINFO_MIME_TYPE);
        $finfo = finfo_file($finfo, $fileName);
        $cFile = curl_file_create($fileName, $finfo, basename($fileName));
        $data = array("image" => $cFile, "filename" => $cFile->postname);
        curl_setopt_array($curl,
        array(
            CURLOPT_URL => "https://api.fpt.ai/vision/idr/vnm",
            CURLOPT_CUSTOMREQUEST => "POST",
            CURLOPT_RETURNTRANSFER => true,
            CURLOPT_POSTFIELDS => $data,
            CURLOPT_HTTPHEADER => array(
            "api-key: ARVFARjKM2e6BlcHIuPvvdfvsfdvdAHqOHfq4"),));
        $response = curl_exec($curl);
        $err = curl_error($curl);
        curl_close($curl);
        if ($err) {
        echo "cURL Error #:" . $err;
        } else {
            echo $response;
        }

 

 

Để Lại Ý Kiến Của bạn!
Bài Viết Chuyên Mục


Khóa Học Miễn Phí

IvyModa

FullStack

Chi tiết

Tạo tính năng CRUD với Livewire Laravel

FullStack

Chi tiết

Php-MySqli-DataBase Cơ Bản

FullStack

Chi tiết
Về MinaCode
Đọc Thơ Nhân Kỷ Niệm 10 Năm Thành Lập MB Nam Đà Nẵng

Banker To Coder

Hi All,


Nguyên đây! MinaCode là website mình tạo ra với mong muốn chia sẻ chút kiến thức liên quan đến lập trình FullStack.

Ngôn ngữ lập trình chủ yếu được sử dụng là Htm, Css, Javascript, Php cùng một số thư viện như Jquery, Fontawesome... Phía Frontend và Farmework Laravel phía Backend.

Mình chưa bao giờ tham gia bất cứ một trường lớp nào về lập trình. Tất cả kiến thức mình chia sẻ đều là trên tình thần tự học. Do đó:

+ MinaCode phù hợp với những tay ngang, xem lập trình như là một kỹ năng bổ trợ trong công việc hay là một kênh kiếm thêm thu nhập từ những very mini projects.

+ MinaCode không phù hợp với những bạn đang được đào tạo bài bản, chính quy.

Mình tin rằng, Trong tương lai không xa. Lập trình sẽ trở nên một kỹ năng không thể thiếu đối với các bạn trẻ.

Cuối cùng thì Ngôn ngữ lập trình không quan trọng bằng Tư duy lập trình. Mình chúc các bạn sẽ có được những kiến thức bổ ích với MinaCode.

--Ngô Sỹ Nguyên--

Coming Soon