Hướng dẫn dùng curl_exec trong PHP
cURL là một command line tool và thư viện được sử dụng để truyền dữ liệu thông qua nhiều giao thức khác nhau (như HTTP, HTTPS, FTP, FTPS, SCP, SFTP, FILE, IMAP, SMTP, POP3, RTSP và RTMP…). Được đời từ năm 1997 viết bởi Daniel Stenberg viết bằng C. Với giao thức HTTP, cURL hỗ trợ việc gửi đi một request với tất cả các phương thức hiện có như GET, POST, PUT, DELETE… Cơ bản về sử dụng cURL PHPVới giao thức HTTP, cURL hỗ trợ việc gửi đi một request với tất cả các phương thức hiện có như GET, POST, PUT, DELETE…Trong PHP có cung cấp các API để làm việc với thư viện này với các chức năng khá đầy đủ cURL PHP. cURL có hỗ trợ việc truyền dữ liệu qua giao thức HTTPS. Ta có thể dùng cURL trong Php để GET và POST dữ liệu, truy cập REST API service có kết hợp với JSON hoặc xác thực OAUTH. Khi sử dụng cURL thường có 3 bước cơ bản:
$ch = curl_init(); //khai báo curl curl_setopt($ch, CURLOPT_URL,"https://topdev.vn"); // xác định địa chỉ cần thực thi curl_setopt($ch, CURLOPT_POST, 1); // POST // và các tham số khác ... dùng curl_setopt để dịnh giá trị cho mỗi tham số. curl_exec ($ch); // thực thi curl curl_close ($ch); // đóng curl để giải phóng vùng nhớ ?> Thiết lập cURLBạn có thể cấu hình thêm một hoặc nhiều option nữa cho curl bằng
Bạn có thi hành nhiều thiết lập một lúc bằng hàm curl_setopt_array(): //Dữ liệu để POST $data = array( 'name' = 'TopDev', 'data' = array(1,2,3,4), 'value' = 'Viec Lam IT' ); //Có thể phải dùng thêm hàm chuyển tham số mảng thành chuỗi URL encode //$data = http_build_query($data) nếu POST $curl = curl_init(); $options = array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'https://topdev.vn/api/', CURLOPT_POST => true, CURLOPT_USERAGENT => "Safari/8.0", CURLOPT_POSTFIELDS => $data ); curl_setopt_array($curl, $options); Gửi request với cURLTạo tài nguyên cURL và thiết lập xong như trên, ta tiến hành gửi request với cURL bằng hàm curl_exec(). Kết quả trả về //Dữ liệu để POST $data = array( 'name' = 'TopDev', 'data' = array(1,2,3,4), 'value' = 'Viec Lam IT' ); //Có thể phải dùng thêm hàm chuyển tham số mảng thành chuỗi URL encode //$data = http_build_query($data) nếu POST $curl = curl_init(); $options = array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'https://topdev.vn/api/', CURLOPT_POST => true, CURLOPT_USERAGENT => "Safari/8.0", CURLOPT_POSTFIELDS => $data ); curl_setopt_array($curl, $options);4 hoặc //Dữ liệu để POST $data = array( 'name' = 'TopDev', 'data' = array(1,2,3,4), 'value' = 'Viec Lam IT' ); //Có thể phải dùng thêm hàm chuyển tham số mảng thành chuỗi URL encode //$data = http_build_query($data) nếu POST $curl = curl_init(); $options = array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'https://topdev.vn/api/', CURLOPT_POST => true, CURLOPT_USERAGENT => "Safari/8.0", CURLOPT_POSTFIELDS => $data ); curl_setopt_array($curl, $options);5 và giá trị là chuỗi trả về khi CURLOPT_RETURNTRANSFER thiết lập //Dữ liệu để POST $data = array( 'name' = 'TopDev', 'data' = array(1,2,3,4), 'value' = 'Viec Lam IT' ); //Có thể phải dùng thêm hàm chuyển tham số mảng thành chuỗi URL encode //$data = http_build_query($data) nếu POST $curl = curl_init(); $options = array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_URL => 'https://topdev.vn/api/', CURLOPT_POST => true, CURLOPT_USERAGENT => "Safari/8.0", CURLOPT_POSTFIELDS => $data ); curl_setopt_array($curl, $options);5. |