2009-05-15 43 views
20

Tôi cần phải thực hiện các yêu cầu RAW POST (PUT a $ var) cho máy chủ và chấp nhận kết quả từ trang đó dưới dạng chuỗi. Cũng cần thêm thông tin tùy chỉnh tiêu đề HTTP (như x-dụ-info: 2.342.342)Sự khác biệt về PHP giữa Curl và HttpRequest

Tôi có hai cách để làm nó

Sự khác biệt giữa hai loại là gì? những gì nhiều hơn nạc? nhanh hơn? Cả hai dường như khá giống với tôi ...

Trả lời

22

Curl được đóng gói với PHP, HTTPRequest là một phần mở rộng PECL riêng biệt.

Như vậy, nhiều khả năng CURL sẽ được cài đặt trên nền tảng mục tiêu của bạn, đó là yếu tố quyết định cho hầu hết các dự án. Tôi chỉ xem xét việc sử dụng HTTPRequest nếu bạn dự định chỉ cài đặt phần mềm của mình trên các máy chủ mà cá nhân bạn có khả năng cài đặt các phần mở rộng PECL; nếu khách hàng của bạn sẽ thực hiện các cài đặt riêng của họ, việc cài đặt các phần mở rộng PECL thường không nằm trong câu hỏi.

This page dường như đề xuất rằng HTTPRequest sử dụng CURL dưới mui xe. Nghe có vẻ như nó có thể cung cấp một giao diện thanh lịch hơn một chút để curl_multi _ *(), mặc dù.

4

HTTPRequest là "loại" một trình bao bọc cho cuộn tròn. Đây hai trích dẫn từ cuốn hướng dẫn sẽ cho bạn một đầu mối:

  • Nó cung cấp chức năng yêu cầu mạnh mẽ, nếu được xây dựng với sự hỗ trợ CURL. Yêu cầu song song có sẵn cho PHP 5 trở lên.

  • Tiện ích mở rộng phải được tạo bằng »support libcurl để bật chức năng yêu cầu (--with-http-curl-requests). Một phiên bản thư viện bằng hoặc lớn hơn để v7.12.3 là bắt buộc.

Nói rằng (và nói rằng tôi chưa bao giờ sử dụng tiện ích mở rộng này), bạn có thể sử dụng tiện ích này nhưng có thể chậm hơn một chút , mặc dù không có gì so với cuộc gọi bên ngoài mà bạn sẽ thực hiện, vì vậy tôi sẽ không xem xét hiệu suất để thực hiện lựa chọn của mình. Tôi sẽ ưu tiên cho thực tế là curl được tích hợp và cái kia bạn phải tự thêm nó, điều này không tiện lợi và giảm tính di động trong trường hợp bạn muốn lưu trữ ứng dụng của mình trong môi trường chia sẻ mà bạn không kiểm soát.

Đối với các nhu cầu mà bạn đã giải thích trong câu hỏi của mình, tôi chắc chắn sẽ đi cho curl.

9

HTTPRequest (và phần mở rộng PECL) được xây dựng trên libcurl.

http://us.php.net/manual/en/http.requirements.php

Các HttpRequest thực sự chỉ là một/cú pháp thân thiện hơn cách dễ dàng hơn để thực hiện các nhiệm vụ tương tự.

Như Frank Farmer đã đề cập, bạn có nhiều khả năng có nền tảng mục tiêu với curl đã được cài đặt và có thể gặp khó khăn khi nhận thư viện PECL được nhà cung cấp lưu trữ cài đặt.

Các vấn đề liên quan