Trước khi trình duyệt gửi thông tin, nó sẽ mã hóa thông tin đó bằng cách sử dụng sơ đồ gọi là mã hóa URL. Trong sơ đồ này, các cặp tên/giá trị được nối với nhau bằng các dấu hiệu bằng nhau và các cặp khác nhau được phân tách bằng dấu và Show
name1=value1&name2=value2&name3=value3 Dấu cách được xóa và thay thế bằng ký tự + và mọi ký tự không phải chữ và số khác được thay thế bằng giá trị thập lục phân. Sau khi thông tin được mã hóa, nó sẽ được gửi đến máy chủ Phương thức NHẬNPhương thức GET gửi thông tin người dùng đã mã hóa được thêm vào yêu cầu trang. Trang và thông tin được mã hóa được phân tách bằng dấu ? http://www.test.com/index.htm?name1=value1&name2=value2
Hãy thử ví dụ sau bằng cách đưa mã nguồn vào kiểm tra. tập lệnh php "; echo "You are ". $_GET['age']. " years old."; exit(); } ?> Name: Age: Nó sẽ tạo ra kết quả sau - Phương thức ĐĂNGPhương thức POST chuyển thông tin qua các tiêu đề HTTP. Thông tin được mã hóa như mô tả trong trường hợp của phương thức GET và đưa vào tiêu đề có tên QUERY_STRING
Hãy thử ví dụ sau bằng cách đưa mã nguồn vào kiểm tra. tập lệnh php "; echo "You are ". $_POST['age']. " years old."; exit(); } ?> Name: Age: Nó sẽ tạo ra kết quả sau - Biến $_REQUESTBiến PHP $_REQUEST chứa nội dung của cả $_GET, $_POST và $_COOKIE. Chúng ta sẽ thảo luận về biến $_COOKIE khi chúng ta giải thích về cookie Biến PHP $_REQUEST có thể được sử dụng để lấy kết quả từ dữ liệu biểu mẫu được gửi bằng cả hai phương thức GET và POST Gần đây tôi đang làm việc trên một dự án mà tôi cần tích hợp API bên ngoài bằng cách sử dụng các yêu cầu HTTP cURL. Đây là lần đầu tiên tôi làm điều này và tôi gặp rất nhiều khó khăn khi tìm hiểu điều này. Tôi đã viết bài đăng này để tôi có thể nhớ các lệnh gọi API cURL của mình cho lần sau và có thể nó cũng có thể giúp ích cho bạn. Các hàm và lệnh gọi API tôi đang sử dụng trong bài đăng này đều là các ví dụ hoạt động trên PHP -v 5. 6 Khái niệm cơ bản về cURL PHPcURL là viết tắt của ‘Client URL Library’ và nó cho phép bạn kết nối và giao tiếp với nhiều loại máy chủ khác nhau với nhiều loại giao thức khác nhau (HTTP, https, FTP, proxy, cookie,…). Bạn có thể tìm thêm thông tin về cách cURL thực sự hoạt động trong tài liệu PHP chính thức. Bài viết này sẽ cung cấp các ví dụ chuyên sâu hơn để tích hợp các ứng dụng của bạn Tôi đã nhận được rất nhiều phản hồi về 'cURL thực sự hoạt động như thế nào' và tôi có cảm giác rằng mọi người không biết điều gì đang xảy ra trong lệnh gọi cURL. Trước khi chúng tôi bắt đầu với bài viết và thiết lập cURL của chúng tôi, tôi đã thêm một ví dụ đơn giản về yêu cầu cURL đơn giản. Yêu cầu sẽ trả về phản hồi API dưới dạng chuỗi
Lưu ý rằng chúng tôi đã lưu trữ curl_exec() của mình trong một biến $output. Biến $output này vẫn có sẵn trong chương trình của chúng tôi ngay cả sau khi chúng tôi đóng nó bằng curl_close(). Vì vậy, sau khi chúng tôi thực hiện cuộc gọi của mình và đóng kết nối, chúng tôi vẫn có thể truy cập kết quả bằng cách sử dụng biến $output của mình Bây giờ chúng ta đã hiểu những điều cơ bản, hãy thử đưa nó vào một chức năng mà chúng ta có thể sử dụng lại trong ứng dụng của mình Thiết lập cURL PHPViệc triển khai API bên ngoài vào dự án của bạn có thể sẽ mất nhiều hơn chỉ một lệnh gọi API và từ các trang khác nhau trong dự án của bạn. Đây là lý do tại sao tôi đã tạo một tập lệnh PHP 'đơn giản' cho phép chúng ta gọi hàm này, với một tập hợp các tham số và yêu cầu cURL sẽ được thực hiện Đảm bảo đặt mã này vào tệp hoặc vị trí mà toàn bộ ứng dụng hoặc trang web của bạn có thể truy cập. (Tôi đã cập nhật chức năng này để chúng tôi có thể xác định các tiêu đề khi chúng tôi thực hiện cuộc gọi. Tôi đã thêm một phần dành cho các tiêu đề tùy chỉnh ở dưới cùng. )
Đây là thiết lập cơ bản để thực hiện lệnh gọi cURL và tôi đang sử dụng câu lệnh Tôi đang sử dụng 0 để xem liệu chúng tôi có muốn cung cấp dữ liệu JSON vào cuộc gọi của mình hay không. Đối với yêu cầu POST và PUT, câu lệnh if không thực sự cần thiết vì chúng tôi chỉ sử dụng POST hoặc PUT với dữ liệu, nhưng đó là một biện pháp bảo mật bổ sung để đảm bảo chức năng gọi của chúng tôi sẽ không bị hỏngPHP cURL NHẬN yêu cầuLệnh gọi API đơn giản nhất là lệnh GET, vì vậy hãy bắt đầu với lệnh gọi đó. Hàm callAPI của chúng tôi mong đợi 3 tham số. $method, $url và $data. Chúng tôi cần cung cấp các tham số đó cho tất cả các lệnh gọi API của mình, vì vậy đối với cURL GET, chúng tôi chỉ có thể đặt $data thành false vì chúng tôi không chuyển bất kỳ dữ liệu nào bằng lệnh gọi GET
$get_data đã trả về tất cả dữ liệu chúng tôi muốn từ API trong chuỗi json. Tôi đang sử dụng $response để chuyển đổi chuỗi json trở lại mảng PHP có thể sử dụng được. Bạn có thể bỏ qua các bước đó nếu muốn, đây là sở thích cá nhân của tôi. Tôi cũng đang sử dụng các mảng $errors và $data bổ sung để lưu trữ dữ liệu thực và các lỗi PHP cURL POST yêu cầuRõ ràng, một yêu cầu POST yêu cầu dữ liệu. Đảm bảo dữ liệu json của bạn là chính xác, nếu không, yêu cầu sẽ tiếp tục trả về lỗi. Mặc dù… Nếu chúng tôi nhận được lỗi từ API, điều đó có nghĩa là lệnh gọi của chúng tôi đang hoạt động 😉 Trong ví dụ của tôi, tôi đang sử dụng cú pháp CakePHP để thiết lập mảng json của mình, vì vậy đừng bận tâm điều đó ________số 8_______Bởi vì chúng tôi đang thực hiện lệnh gọi API với dữ liệu json, nên tôi đang chuyển đổi mảng PHP của mình thành chuỗi json với 1. Phản hồi sẽ lại xuất hiện dưới dạng chuỗi json, vì vậy tôi đang sử dụng 2 để chuyển đổi chuỗi json trở lại mảng PHP có thể sử dụng được. Tương tự như chúng ta đã làm trong lệnh GET, vì vậy bạn có thể bỏ qua các bước này một lần nữa nếu bạn không cần chúngPHP cURL PUT yêu cầuYêu cầu PUT gần giống như yêu cầu POST. Tôi gặp khó khăn khi tìm cách chuyển dữ liệu vào lệnh gọi PUT. Nếu chúng ta xem xét hàm callAPI() của mình, bạn sẽ thấy rằng tôi đã thay đổi một số thứ giữa yêu cầu PUT và POST. Chúng ta vẫn có thể sử dụng các tham số giống nhau trong hàm callAPI() như mọi khi
PHP cURL XÓA yêu cầuYêu cầu xóa lại rất đơn giản. Chúng tôi chỉ có thể truy cập url API bằng $id mà chúng tôi muốn xóa và gặp sự cố… nó sẽ biến mất vĩnh viễn
Điều gì với các tiêu đề linh hoạt?Ban đầu, chúng tôi đã xác định chức năng callAPI của mình với các tiêu đề đặt trước. Nhưng nếu vì lý do nào đó, chúng ta cần thay đổi tiêu đề một chút cho cuộc gọi khác thì sao? . Do đó, đây là một tùy chọn về cách làm cho các tiêu đề đặt trước linh hoạt
Có 2 sự khác biệt ở đây từ chức năng đầu tiên của chúng tôi. 1. Chúng tôi đã thêm một tham số bổ sung trong chức năng của mình để xác định xem chúng tôi có muốn sử dụng tiêu đề tùy chỉnh hay không. Tôi đặt nó vào 3 để cho nó một giá trị mặc định. Bây giờ chúng tôi không bắt buộc phải nhập tiêu đề của mình với mỗi cuộc gọiThay đổi thứ hai là câu lệnh if khi chúng tôi đặt tiêu đề API. Nếu chúng tôi không cung cấp bất kỳ tiêu đề nào khi thực hiện cuộc gọi, nó sẽ sử dụng các tiêu đề mặc định của chúng tôi thay vì bị lỗi. Bây giờ chúng tôi đã sẵn sàng để thêm các tiêu đề tùy chỉnh với cuộc gọi của mình Trong ví dụ này, tôi đang sử dụng các tham số tìm kiếm để tìm kiếm dữ liệu cụ thể trước khi tôi lấy tất cả dữ liệu bằng API. Để thực hiện tìm kiếm, rõ ràng là tôi cần có thể thêm truy vấn tìm kiếm của mình vào các tiêu đề callAPI của mình. Đây là ví dụ của tôi Tạo tiêu đề tùy chỉnh trước cuộc gọi của chúng tôi
Đây chỉ là một ví dụ về cách thêm tiêu đề. Ví dụ của tôi là lấy tất cả các hàng đã trả tiền thuê trong 30 ngày qua. $one_month_ago chỉ là một biến trợ giúp. $rent_header là tiêu đề thực mà tôi muốn thêm vào tiêu đề mặc định của mình. Đây cần phải là một chuỗi Khi bạn đã đặt tiêu đề, bạn chỉ cần thực hiện lệnh gọi api thông thường và thêm tiêu đề mới của mình vào cuối Tôi không cần sử dụng bất kỳ phương thức gọi API nào khác như bản vá hoặc thanh lọc hoặc bất kỳ thứ gì tương tự. Những điều này bạn cần phải tự tìm ra. Nếu có điều kỳ diệu nào đó xảy ra trong bài đăng này, tôi hy vọng các ví dụ của tôi có thể giúp bạn hiểu rõ hơn Gần đây tôi đã viết phần 2 cho bài đăng này, sẽ nói về việc tạo khóa AUTH (utoken) trước khi chúng tôi thực hiện cuộc gọi của mình. Hãy chắc chắn để kiểm tra nó ra ở đây là tốt
Nhận các bài báo hay nhất của chúng tôi ngay trong hộp thư đến của bạn. Chỉ một lần mỗi quý, bởi vì không ai thích thư rác Cảm ơnCảm ơn bạn đã đăng ký. Tin nhắn cảm ơn của chúng tôi đã sẵn sàng cho bạn Đọc thêm các chủ đề liên quan?
Địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu * Nhận xét * Tên * Email * Trang mạng Δ Farkas nói. Xin chào. Tôi gặp vấn đề khi muốn xóa, tôi gõ DELETE và vì lý do nào đó nó giống như nhận được GET. Bạn có thể giúp tôi với những gì không tốt? . Cảm ơn trước sự giúp đỡ của bạn. chó sói Bob Weichler nói. Xin chào Farkas, Cảm ơn bạn đã đăng phản hồi của mình. Bạn có một ví dụ mã cho tôi, xin vui lòng? Şahin nói. ĐĂNG từ một. php to b. php. Tôi lưu nó vào cơ sở dữ liệu và kết quả dương tính/âm tính được trả về. Làm cách nào tôi có thể in kết quả này vào tài khoản của mình. tập tin php? Talha Rafique nói. cảm ơn, người đàn ông, Pedro henrique nói. Một nghi ngờ giả sử tôi gửi curl từ trang đăng nhập của mình tới api của tôi, nó xử lý dữ liệu đăng nhập Trong api của tôi, làm cách nào để nhận dữ liệu khi cuộn tròn? Cảm ơn Paolo nói. Bài báo tuyệt vời. nhưng tôi có thể truy cập API của mình. Bạn có thể giúp tôi được không Rick nói. Xin chào và cảm ơn thông tin của bạn Tôi đang cố gắng học tất cả những gì có thể về PHP và lập trình web. Ngay bây giờ, tôi đang tự hỏi điều này; . Bạn có một phương pháp, bạn có dữ liệu và bạn có một URL. Nhưng, cURL có phải là “hai chiều” không? Ý tôi là, bạn gọi một API bằng cURL, nhưng API sử dụng cái gì để trả lời dữ liệu được yêu cầu? . Tôi đã sử dụng thành công cURL để yêu cầu dữ liệu từ các API khác nhau nhưng tất nhiên, các API đó đã tồn tại. Nếu tôi muốn làm một trang đáp ứng các yêu cầu từ một trang khác thì sao? Cảm ơn bạn trước cho bất kỳ sự giúp đỡ
Chitra nói. Xin chào ngài, bali kratom nói. Cảm ơn đã chia sẻ điều này nó thực sự hữu ích cho tôi samuel nói. thực sự hữu ích Scott nói. Lời chào từ một người lạ ngẫu nhiên trên internet. Chỉ muốn nói cảm ơn bạn đã đăng bài này. Tôi thường đội mũ PERL bất cứ khi nào tôi có nhu cầu kỳ lạ để viết một kịch bản nào đó nhưng một dự án gần đây đã khiến PHP trở thành một lựa chọn tốt hơn mặc dù tôi hoàn toàn không quen thuộc với nó. Bài đăng này đã giúp tôi tìm ra lý do tại sao mã của chính tôi lại thất bại một cách ngoạn mục. Ồ, và tôi đã đánh cắp câu lệnh tình huống mặc định để sử dụng cho riêng mình. Sử dụng đa dạng thông minh biến $data ở đó abdelhak nói. Bài đăng tuyệt vời bài viết rất hữu ích, tôi thực sự thích nó và tôi thích cách bạn giải thích các cuộc gọi api basicmath nói. ngài là một quý ông Cảm ơn đã làm cho điều này có sẵn Rossella Terracciano nói. Tôi không hiểu… tôi phải đặt mã chức năng và yêu cầu đăng thecURL trong cùng một tập lệnh PHP (thay đổi url) nếu tôi muốn đưa ra yêu cầu xác thực, phải không? Tee nói. tôi đã sử dụng chức năng api của bạn được một thời gian nhưng bây giờ nó đột nhiên ngừng hoạt động. Tôi bị lỗi kết nối ngay bây giờ. Bất kỳ trợ giúp sẽ được đánh giá cao Vikas Sharma nói. Đẹp và đơn giản Benjamin nói. Đây là một trong những bài viết hay nhất tôi từng thấy về lệnh gọi API cURL, cảm ơn bạn rất nhiều Leslie nói. Cảm ơn bạn đã giới thiệu cho tôi bài đăng này, bởi vì tôi đang ở vị trí của bạn khi bạn viết bài đăng này ngay bây giờ và thời hạn đang ở trên cổ tôi như của họ không có ngày mai PRANAV nói. Cảm ơn rất nhiều. Điều này đã giúp tôi rất nhiều chế độ ăn kiêng giảm cân nói. Đẹp. Đây là một bài báo thực sự tuyệt vời. Cảm ơn đã cung cấp những chi tiết này goenergia nói. Thx, hoạt động tốt krishna nói. http. //ncert. nic. trong/sách giáo khoa/sách giáo khoa. htm?aeen1=0-10 Haider nói. xin chào, tôi muốn áp dụng điều này trên chatbot của mình, bạn có thể giúp tôi việc này không spamzeiro nói. Trang web này giúp tôi gọi API mahesh nói. CHÀO Dammy Oluwatobi nói. Xin chào, đây có thể là một câu hỏi rất lạ nhưng tôi cần xác minh xem người dùng có tồn tại trong cơ sở dữ liệu của tôi từ yêu cầu cuộn tròn hay không, sau đó trả lại mã xác nhận cho yêu cầu. tôi mới sử dụng php amar singh nói. Cảm ơn rất nhiều. tôi đánh giá cao. Điều này đã giúp tôi rất nhiều trong dự án đại học của tôi Daniel nói. Chà, có vẻ là một câu hỏi lạ, vì không ai hỏi, nhưng tại sao không ai đề cập đến khóa API?
Van bướm nói. Trang web này chắc chắn có tất cả các thông tin và kishor nói. trang web tốt Supreet nói. Bài báo tuyệt vời. Cảm ơn bungee nói. Đọc tuyệt vời. Có thể NHẬN bằng THAM GIA trong cURL không? . Một chủ đề mới có thể. sử dụng trình soạn thảo PHP – thiết lập cơ bản và thử nghiệm với API. Rất nhiều người đấu tranh ở đó. Cảm ơn một lần nữa ống cpvc nói. đưa lên tuyệt vời, rất nhiều thông tin. Tôi tự hỏi tại sao khác Tôi tự tin, bạn đã có một lượng độc giả khổng lồ rồi Deepak nói. xin chào ngài
devi nói. điều này rất hữu ích để hiểu các phương pháp uốn tóc khác nhau. Tôi cần một sự giúp đỡ từ bạn Lavinia nói. Bài đăng Excelente, với một chút thay đổi, nó đã giúp tôi rất nhiều trên ứng dụng web của mình. Cảm ơn Vong Visalsambath nói. Tôi chạy nút trên máy chủ cục bộ với cổng 3000 và tôi nhận được thông báo lỗi này. không thể kết nối với cổng localhost 3000. kết nối bị từ chối Penni nói. Tôi đọc đoạn này hoàn toàn liên quan đến sự khác biệt của hầu hết Orang dalem nói. Bạn là người đàn ông tuyệt vời,, Cảm ơn 🙂 tomosa nói. Cảm ơn bạn, công việc của bạn rất dễ học và dễ hiểu Harga Karpet masjid nói. Ôi Chúa ơi. Bài viết ấn tượng bác. Cảm ơn, tuy nhiên tôi người nổi tiếng trong thể thao nói. Bạn đã bao giờ nghĩ đến việc xuất bản sách điện tử hoặc tác giả khách mời trên các trang web khác chưa? Bryan Jay Osal nói. Xin chào, bạn có thể tìm nạp api tìm nạp tệp json bằng cách sử dụng php từ một url api vớiCRUD không? . cảm ơn bạn rất nhiều người đàn ông Hộp văn bản nói. CHÀO, Bây giờ đối với khách hàng abc,com đặt bản ghi cname thành xyz. com. Khi trang của tôi truy cập từ abc. com, tôi muốn anh ấy hiển thị trang đăng nhập hoặc logo công ty của anh ấy trên trang đăng nhập của tôi Tôi cũng muốn làm như vậy đối với miền khách hàng pqr. com Làm thế nào điều này có thể được thực hiện bằng cách sử dụng mã của bạn? Joan nói. CHÀO. Cảm ơn bạn rất nhiều, tôi không thử tất cả các tùy chọn, nhưng tùy chọn đầu tiên phù hợp với tôi NAGENDRA R nói. Có cách nào để một người có thể sử dụng liên kết giao diện người dùng mà khi người dùng đã đăng nhập nhấp vào, đã thay đổi danh mục từ 2 thành 3 (hoặc “đang hoạt động” thành “đã đóng”) không? Pritesh sushil singh nói. công việc tốt, nó rất hữu ích Joshua Read nói. Có cách nào để một người có thể sử dụng liên kết giao diện người dùng mà khi người dùng đã đăng nhập nhấp vào, đã thay đổi danh mục từ 2 thành 3 (hoặc “đang hoạt động” thành “đã đóng”) không?
Israel nói. Cảm ơn rất nhiều. tôi đánh giá cao. Điều này đã giúp tôi rất nhiều trong dự án trường học của tôi Adam nói. Cảm ơn, người đàn ông. điều này thật tuyệt. mặc dù đã sửa đổi nó thành do phương thức xác thực đang sử dụng. Cảm ơn Art3mis9 nói. Tôi đang mã hóa một ứng dụng web cần sử dụng oAuth để tìm nạp dữ liệu. Vì lý do bảo mật, tôi không thể gửi dữ liệu từ ứng dụng khách, vì vậy tôi cần yêu cầu ứng dụng khách gửi yêu cầu đến máy chủ của chúng tôi trước, sau đó sẽ thực hiện lệnh gọi API bằng thông tin đăng nhập, sau đó lấy dữ liệu được trả về và gửi lại Tôi có thể làm điều này bằng PHP cURL không? . Tôi tình cờ thấy bài viết của bạn, và thông tin là tuyệt vời. Tôi chỉ đang vật lộn với việc thực hiện
Kalumba Raymond Joseph nói. wooow, điều này thực sự thú vị khi biết, nó thực sự giúp hiểu cách thức hoạt động của cURL đã được sử dụng khung hoạt động mặc dù đôi khi tôi đã nhận được các thay đổi. giơ ngón tay cái lên anh em hòa bình…… vincenzo nói. Xin chào, cảm ơn rất nhiều về hướng dẫn của bạn, tôi đang kết nối với API bằng cURL và php, API trả về mã thông báo id cho một người dùng cụ thể. Tôi không hiểu tại sao nếu tôi truy cập trực tiếp vào url yêu cầu, ví dụ nếu tôi đặt url đăng nhập vào trình duyệt thì tôi có thể mở các url khác mà không cần phải lấy lại mã thông báo. Mã thông báo có được lưu trong tiêu đề không? Làm cách nào để POST dữ liệu bằng PHP?Trong PHP, chúng ta có thể sử dụng phương thức $_POST như một biến siêu toàn cục được vận hành để quản lý dữ liệu biểu mẫu . Sau khi chúng tôi nhấp vào nút gửi và trang sẽ gửi dữ liệu qua phương thức đăng.
Làm cách nào để gửi dữ liệu JSON tới API trong PHP?Gửi dữ liệu JSON qua POST bằng PHP cURL . Chỉ định URL ( $url ) nơi gửi dữ liệu JSON Khởi tạo tài nguyên cURL mới bằng cách sử dụng curl_init() Thiết lập dữ liệu trong mảng PHP và mã hóa thành chuỗi JSON bằng json_encode() Đính kèm dữ liệu JSON vào các trường POST bằng tùy chọn CURLOPT_POSTFIELDS Làm cách nào để lấy dữ liệu từ API REST trong PHP?Mã để đọc dữ liệu API bằng cách sử dụng hàm PHP file_get_contents()
. Điều này có thể đọc bất kỳ tệp hoặc dữ liệu API nào bằng URL và lưu trữ dữ liệu trong một biến. Chức năng này là phương pháp dễ dàng nhất để đọc bất kỳ dữ liệu nào bằng cách chuyển URL API. |