Xem ví dụ chi tiết này, bắt đầu bằng cách tạo một kết nối mới.
$curl_connection =
curl_init['//www.domainname.com/target_url.php'];
Một kết nối mới được tạo bằng hàm curl_init [], lấy URL đích làm tham số [URL nơi chúng tôi muốn đăng dữ liệu của chúng tôi]. URL mục tiêu giống như các tham số hành động của người Viking có dạng bình thường, trông như thế này:
Bây giờ, hãy để một số tùy chọn cho kết nối của chúng tôi. Chúng ta có thể thực hiện điều này bằng cách sử dụng hàm Curl_SetOpt []. Truy cập trang tham chiếu Curl_SetOpt [] để biết thêm thông tin về curl_setopt [] và danh sách đầy đủ các tùy chọn.
curl_setopt[$curl_connection, CURLOPT_CONNECTTIMEOUT, 30];
curl_setopt[$curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 [compatible; MSIE 6.0; Windows NT 5.1]"];
curl_setopt[$curl_connection, CURLOPT_RETURNTRANSFER, true];
curl_setopt[$curl_connection, CURLOPT_SSL_VERIFYPEER, false];
curl_setopt[$curl_connection, CURLOPT_FOLLOWLOCATION, 1];
Chúng ta đặt những tùy chọn nào ở đây?
Đầu tiên, chúng tôi đặt thời gian chờ kết nối thành 30 giây, vì vậy chúng tôi không có tập lệnh chờ đợi vô thời hạn nếu máy chủ từ xa không trả lời.
Sau đó, chúng tôi đặt cách Curl sẽ tự xác định với máy chủ từ xa. Một số máy chủ sẽ trả về nội dung khác nhau cho các trình duyệt khác nhau [hoặc tác nhân, chẳng hạn như nhện của các công cụ tìm kiếm], vì vậy chúng tôi muốn yêu cầu của chúng tôi trông giống như nó đến từ một trình duyệt phổ biến.
Curlopt_returntransfer được đặt thành các lực true curl không hiển thị đầu ra của yêu cầu, mà trả về nó dưới dạng chuỗi.
Sau đó, chúng tôi đặt tùy chọn Curlopt_SSL_Verifypeer thành FALSE, do đó yêu cầu sẽ không kích hoạt lỗi trong trường hợp chứng chỉ SSL không hợp lệ, hết hạn hoặc không ký.
Cuối cùng, chúng tôi đặt Curlopt_FollowLocation thành 1 để hướng dẫn Curl theo vị trí của Google: Các chuyển hướng được tìm thấy trong các tiêu đề được gửi bởi trang web từ xa.
Bây giờ chúng tôi phải chuẩn bị dữ liệu mà chúng tôi muốn đăng. Trước tiên chúng ta có thể lưu trữ điều này trong một mảng, với khóa của một phần tử giống như tên đầu vào của một biểu mẫu thông thường và giá trị là giá trị mà chúng ta muốn đăng cho trường đó.
Ví dụ: nếu ở dạng thông thường, chúng tôi sẽ có:
Chúng tôi thêm điều này vào mảng của chúng tôi như thế này:
$post_data['firstName'] = 'Name';
$post_data['action'] = 'Register'
Làm tương tự cho mọi trường mẫu.
Dữ liệu sẽ được đăng ở định dạng sau: key1 = value1 & key2 = value2
Để định dạng dữ liệu như thế này, chúng tôi sẽ tạo các chuỗi cho từng cặp giá trị khóa [ví dụ: key1 = value1], hãy đặt chúng vào một mảng khác [$ post_items] sau đó kết hợp chúng trong một chuỗi bằng cách sử dụng chức năng PHP Iliverde [] .
foreach [ $post_data as $key => $value]
{
$post_items[] = $key . '=' . $value;
}
$post_string = implode ['&', $post_items];
Tiếp theo, chúng ta cần nói cho Curl chúng ta muốn đăng chuỗi nào. Đối với điều này, chúng tôi sử dụng tùy chọn curlopt_postfields.
curl_setopt [$ curl_connection, curlopt_postfields, $ post_string]; Cuối cùng, chúng tôi thực hiện bài đăng, sau đó đóng kết nối.
$result = curl_exec[$curl_connection];
curl_close[$curl_connection];
Đến bây giờ, dữ liệu đáng lẽ phải được đăng lên URL từ xa. Đi kiểm tra điều này và nếu nó không hoạt động đúng, hãy sử dụng hàm Curl_GetInfo [] để xem bất kỳ lỗi nào có thể xảy ra.
print_r[curl_getinfo[$curl_connection]];
Dòng này hiển thị một mảng thông tin liên quan đến việc chuyển nhượng. Điều này phải được sử dụng trước khi đóng kết nối với curl_close [];
Bạn cũng có thể thấy số và mô tả về lỗi bằng cách xuất ra curl_errno [$ curl_connection] và curl_error [$ curl_connection].
Vì vậy, hãy để Lôi đặt mọi thứ lại với nhau. Đây là mã của chúng tôi: