Đang cài đặt cURL trên Denwer. Truyền tệp web từ dòng lệnh Cài đặt Curl

Những người sử dụng cURL sau khi cập nhật lên 5.6.1, 5.5.17 thì gặp phải hiện tượng mô-đun cURL ngừng hoạt động. Vấn đề đã không biến mất kể từ đó. Ngay cả trong phiên bản PHP 5.6.4 hiện tại, vấn đề này vẫn tồn tại.

Làm thế nào để bạn biết liệu cURL có phù hợp với bạn hay không?

Tạo một tệp php và sao chép vào đó:

Mở nó từ máy chủ. Nếu đầu ra là một cái gì đó như:

Mảng ( => 468736 => 3 => 3997 => 0 => 7.39.0 => x86_64-pc-win32 => OpenSSL/1.0.1j => 1.2.7.3 => Mảng ( => dict => file => ftp => ftps => gopher => http => https => imap => imaps => ldap => pop3 => pop3s => rtsp => scp => sftp => smtp => smtps => telnet => tftp) )

Điều này có nghĩa là cURL vẫn ổn, nếu thay vào đó có lỗi PHP thì có nghĩa là có vấn đề.

Tất nhiên trước tiên hãy kiểm tra tệp php.ini, tìm dòng ở đó

Tiện ích mở rộng=php_curl.dll

Và hãy chắc chắn rằng không có dấu chấm phẩy ở phía trước nó.

Nếu mọi thứ vẫn như vậy nhưng cURL không hoạt động thì bạn có thể chạy thử nghiệm khác để xác nhận rằng tình huống này là bất thường. Tạo một tệp php khác có nội dung:

Tìm kiếm cURL trong trình duyệt của bạn; nếu chỉ có một kết quả khớp thì mô-đun cURL không được tải:

Đồng thời, cả Apache và PHP đều hoạt động như bình thường.

Có ba giải pháp:

  1. Phương pháp một (không phải kosher). Nếu bạn có PHP 5.6.*, hãy lấy phiên bản PHP 5.6.0, từ đó lấy tệp php_curl.dll cũ và thay thế bằng tệp mới của phiên bản đó, ví dụ: PHP 5.6.4. Đối với những người có PHP 5.5.17 trở lên, bạn cần lấy cùng một tệp từ PHP 5.5.16 và thay thế nó. Chỉ có một vấn đề - tìm những phiên bản cũ này. Tất nhiên, bạn có thể tìm kiếm trong http://windows.php.net/downloads/snaps/php-5.6, nhưng cá nhân tôi không tìm thấy thứ mình cần ở đó. Và bản thân quyết định này bằng cách nào đó không hoàn toàn đúng đắn hơn.
  2. Phương pháp hai (rất nhanh, nhưng cũng không tốt hơn). Từ thư mục PHP, sao chép tệp libssh2.dll vào thư mục Apache24bin và khởi động lại Apache.
  3. Phương pháp ba (kosher - người kosher vỗ tay khi đứng). Bạn cần thêm thư mục PHP của mình vào PATH. Cách thực hiện việc này được mô tả rất rõ ràng trong tài liệu chính thức.

Chung ta kiểm tra:

Thì đấy, phần cURL đã có sẵn.

Tại sao vậy? Vấn đề này đến từ đâu? Không có câu trả lời cho câu hỏi này, mặc dù cơ chế xảy ra của nó đã được mô tả.

Vấn đề dường như liên quan đến thực tế là 5.6.1 lẽ ra phải được phát hành cùng với libcurl 7.38.0 được cập nhật. Nhưng điều này chưa được biết chắc chắn; các tác giả PHP chỉ ra Apache, nói rằng có một số lỗi ở đó.

Sự cố xảy ra như thế nào: Nếu PATH của hệ thống không bao gồm thư mục PHP thì khi dịch vụ Apache khởi động, nó sẽ không thể tìm thấy dll mới (libssh2.dll), một dll phụ thuộc cho php_curl.

Báo cáo lỗi liên quan:

Lỗi nghiêm trọng: Gọi hàm không xác định Curl_multi_init() trong ...

Nói chung, dường như có vấn đề với cURL trong PHP, nếu không phải luôn luôn thì rất thường xuyên. Trong khi tìm kiếm vấn đề của mình trên Google, tôi tình cờ thấy các chủ đề, một số trong số đó đã hơn chục năm tuổi.

Ngoài ra, việc tìm kiếm trên Google còn mang lại thêm một số kết luận:

Trên Internet có đủ “hướng dẫn dành cho kẻ ngốc”, hướng dẫn chi tiết, kèm hình ảnh, cách bỏ ghi chú dòng Extension=php_curl.dll trong tệp php.ini.

Trên trang web PHP chính thức, trong phần cài đặt cURL chỉ có hai gợi ý liên quan đến hệ thống Windows:

Để sử dụng mô-đun này trên Windows, các tệp libeay32.dll và ssleay32.dll phải tồn tại trong biến môi trường PATH của hệ thống. Bạn không cần tệp libcurl.dll từ trang cURL.

Tôi đã đọc chúng hàng chục lần. Tôi chuyển sang tiếng Anh và đọc thêm vài lần bằng tiếng Anh. Mỗi lần tôi càng tin rằng hai câu này được viết bởi động vật, hoặc ai đó chỉ đơn giản nhảy mông lên bàn phím - tôi không hiểu ý nghĩa của chúng.

Ngoài ra còn có một số mẹo và hướng dẫn điên rồ (tôi thậm chí còn thử một số).

Trên trang web báo cáo lỗi PHP, tôi đã gần tìm ra những gì cần được đưa vào biến PATH của hệ thống để đưa thư mục có PHP vào.

Nói chung, đối với những người gặp vấn đề với cURL và những người cần “đưa thư mục có PHP vào biến PATH của hệ thống”, hãy xem hướng dẫn đã được đề cập ở trên http://php.net/manual/ru/faq.installation .php#faq .installation.addtopath . Ở đó mọi thứ đều đơn giản, và quan trọng nhất là nó được viết bằng ngôn ngữ con người những gì cần phải làm.

21 câu trả lời

Có thể bạn đã có mái tóc xoăn rồi

Bạn có thể không cần tải xuống bất cứ thứ gì:

  • Nếu bạn đang sử dụng Windows 10 phiên bản 1803 trở lên, hệ điều hành của bạn sẽ đi kèm với một bản sao cuộn tròn đã được định cấu hình và sẵn sàng sử dụng.
  • Nếu bạn có nhiều nhu cầu bí truyền hơn (ví dụ: bạn cần bản dựng cygwin, bản dựng của bên thứ 3, libcurl, tệp tiêu đề, nguồn, v.v.), hãy sử dụng trình hướng dẫn tải xuống cuộn tròn. Sau khi trả lời năm câu hỏi, bạn sẽ nhận được danh sách các liên kết tải xuống.

    Loại bỏ và điều chỉnh độ cong

    Tìm Curl.exe trong gói đã tải xuống của bạn; có lẽ nó ở dưới bin\ .

    Chọn một vị trí trên ổ cứng sẽ đóng vai trò là ngôi nhà cố định cho các lọn tóc:

    • Nếu bạn muốn tạo một thư mục riêng cho nó, C:\Program Files\curl\ hoặc C:\curl\ sẽ làm được.
    • Nếu bạn có nhiều tệp thực thi miễn phí và không muốn thêm nhiều thư mục riêng biệt vào PATH của mình, hãy sử dụng một thư mục duy nhất cho mục đích này, chẳng hạn như C:\Program Files\tools\ hoặc C:\tools\ .

    Đặt Curl.exe vào thư mục. Và không bao giờ di chuyển thư mục hoặc nội dung của nó.

    Sau đó, bạn sẽ muốn cung cấp tính năng cuộn tròn ở bất kỳ đâu trên dòng lệnh. Để thực hiện việc này, hãy thêm thư mục vào PATH, như thế này:

    1. Nhấp vào menu Bắt đầu của Windows 10.
    2. Bạn sẽ thấy kết quả tìm kiếm. Chỉnh sửa biến môi trường hệ thống. Chọn cái này.
    3. Cửa sổ Thuộc tính hệ thống sẽ mở ra. Nhấn vào nút Biến môi trườngở phía dưới.
    4. Chọn biến "Đường dẫn" trong phần "Biến hệ thống" (trường dưới cùng). Nhấn vào nút Thay đổi.
    5. Nhấp chuột " Thêm vào" và dán đường dẫn đến thư mục chứa Curl.exe.
    6. Nhấp chuột ĐƯỢC RỒI, Nếu cần thiết. Đóng các cửa sổ bảng điều khiển đang mở và mở lại chúng để chúng nhận được PATH mới.

    Bây giờ hãy tận hưởng việc gõ Curl trên bất kỳ dòng lệnh nào. Thời gian để vui chơi!

    Để chạy Curl từ dòng lệnh

    a) Nhấp chuột phải vào biểu tượng My Computer

    b) Chọn "Thuộc tính"

    d) Chuyển đến tab [Nâng cao] - nút "Biến môi trường"

    e) Trong "Biến hệ thống", chọn "Đường dẫn" và "Chỉnh sửa"

    f) Thêm dấu chấm phẩy và sau đó là đường dẫn đến nơi bạn đặt tập tin Curl.exe (ví dụ: D:\software\curl)

Bây giờ bạn có thể chạy từ dòng lệnh bằng cách gõ:

Cuộn tròn www.google.com

Bắt đầu với Windows 10 phiên bản 1803 (và cũ hơn, Insider build 17063), bạn không còn cài đặt Curl . Windows chứa Curl.exe (và tar.exe) của riêng nó trong C:\Windows\System32\ mà bạn có thể truy cập trực tiếp từ CMD thông thường.

C:\Users\vonc>C:\Windows\System32\curl.exe --version Curl 7.55.1 (Windows) libcurl/7.55.1 WinSSL Ngày phát hành: Giao thức: tệp dict ftp ftps http https imap imaps pop3 pop3s smtp smtps telnet tftp Tính năng: AsynchDNS IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL C:\Users\vonc>C:\Windows\System32\tar.exe --version bsdtar 3.3.2 - libarchive 3.3.2 zlib/1.2.5.f- ipp

Có lẽ cần lưu ý rằng Powershell v3 trở lên chứa lệnh ghép ngắn Invoke-WebRequest, có một số khả năng cuộn tròn. Có lẽ cũng đáng đề cập đến các lệnh ghép ngắn New-WebServiceProxy và Invoke-RestMethod.

Tôi không chắc liệu chúng có phù hợp với bạn hay không, nhưng mặc dù tôi không phải là Windows nhưng tôi phải nói rằng tôi thấy cách tiếp cận dựa trên đối tượng mà PS sử dụng dễ dàng hơn nhiều để làm việc với các tiện ích như Curl, wget, v.v. Chúng có thể đáng xem

Bạn có thể tạo phiên bản mới nhất của Curl, openssl, libssh2 và zlib trong 3 bước đơn giản bằng cách làm theo hướng dẫn này.

Curl được xây dựng tĩnh, do đó bạn không cần phải truyền bá thời gian chạy động cần thiết.

Bạn cũng có thể tải xuống phiên bản dựng sẵn (x86 và x64) từ

Tôi đang tìm kiếm quá trình tải xuống Xoăn và mọi nơi họ nói hãy sao chép tập tin Curl.exe trên System32, nhưng họ không cung cấp liên kết trực tiếp. nên bạn có thể tận hưởng ở đây Curl.exe dễ dàng để thư mục thùng rác Chỉ

giải nén nó và sau đó vào thư mục bin nơi bạn sẽ nhận được tệp exe

Tôi nghĩ tôi sẽ viết chính xác những gì tôi đã làm (phiên bản Windows 10, 64-bit):

Chọn tệp thực thi cuộn tròn.

Chọn Win64.

Chọn phổ quát.

Chọn bất kỳ một.

phiên bản cuộn tròn: 7.53.1 - Đã bật SSH hỗ trợ SSL. Tín dụng: Victor Shakats. Gói này là một kiểu cuộn tròn có thể thực thi được. Liên kết này sẽ cung cấp cho bạn một tệp nhị phân cuộn tròn được biên dịch trước (hoặc trong một số trường hợp, sử dụng thông tin được cung cấp trên trang mà liên kết sẽ đưa bạn đến). Bạn có thể hoặc không thể cài đặt libcurl làm thư viện/DLL dùng chung. Tệp được đóng gói bằng 7zip. 7zip là một định dạng lưu trữ tập tin.

Nhấp vào tải xuống.

Bạn nên có tệp Curl-7.53.1-win64-mingw.7z trong thư mục tải xuống của mình.

Cài đặt 7-Zip nếu bạn chưa có.

Nhấp chuột phải, 7-Zip, Giải nén tại đây. Sao chép và dán tệp được giải nén vào đâu đó như Z:\Tools\

Nếu bạn nhìn vào thư mục bin, bạn sẽ thấy Curl.exe. Nếu bạn nhấp đúp vào nó, cửa sổ sẽ nhanh chóng nhấp nháy và biến mất. Để chạy nó, bạn cần sử dụng dòng lệnh. Chuyển đến thư mục bin của bạn và nhập cuộn tròn theo sau là các tùy chọn của bạn để thực hiện yêu cầu. Bạn phải sử dụng dấu ngoặc kép. Dấu ngoặc đơn sẽ không hoạt động với tính năng cuộn tròn trên Windows.

Bây giờ bạn cần thêm Curl vào biến Đường dẫn người dùng để không phải điều hướng đến đúng thư mục để chạy chương trình. Đi tới PC này, Máy tính, Thuộc tính hệ thống, Cài đặt hệ thống nâng cao, đăng nhập với tư cách quản trị viên (bạn không phải là quản trị viên, phải không?). Biến môi trường, Biến hệ thống, xem danh sách và chọn Đường dẫn, sau đó Chỉnh sửa, rồi Mới, sau đó, ví dụ:

Z:\Tools\curl-7.53.1-win64-MinGW\Bin

Bạn có thể thêm dấu gạch chéo ngược nếu muốn, tôi không nghĩ nó quan trọng. Nhấn nút di chuyển lên cho đến khi nó ở đầu danh sách và bạn có thể dễ dàng nhìn thấy nó từ màn hình trước. Bấm OK, OK, OK, sau đó mở dấu nhắc lệnh và bạn có thể chạy Curl bằng cách gõ Curl từ bất kỳ thư mục nào với tư cách bất kỳ người dùng nào. Đừng quên dấu ngoặc kép của bạn.

Đây là câu trả lời tôi muốn nhận được.

Trình cài đặt này giúp tôi dễ dàng http://www.confusedbycode.com/curl/

"Bạn có thể cài đặt cURL cho Windows chỉ bằng vài cú nhấp chuột. Chỉ cần tải xuống và chạy trình cài đặt từ bảng bên dưới và nhấp vào Cài đặt. Cài đặt mặc định bao gồm.

Một chương trình nhỏ như Curl có thể làm được rất nhiều việc và khó có khả năng nó được cài đặt mặc định trên máy chủ VPS của bạn. Nếu bạn là một nhà phát triển web và không biết Curl là gì thì bạn nên làm quen với các khả năng của nó và có lẽ một số việc trước đây khó thực hiện giờ đây sẽ được thực hiện dễ dàng và hiệu quả hơn.

Những nhà phát triển đã từng phát triển trình phân tích cú pháp HTML - hoặc XML - đều biết về khả năng của nó.

Tôi đã tự mình khám phá Xoăn chỉ tại thời điểm cần phát triển một plugin cho Textpattern, plugin này trái với chính sách của mạng xã hội VKontakte, sẽ tự động thêm thông báo về việc xuất bản một bài viết mới cho một nhóm công khai. Thật không may, tôi không thể làm điều này nếu không có lọn tóc.

Tôi hy vọng sau khi chúng tôi đã quyết định lý do tại sao chúng tôi cần cuộn tròn này, chúng tôi tiến hành cài đặt nó trên máy chủ nơi cài đặt PHP và Apache. Nếu bạn có dịch vụ lưu trữ đơn giản (không phải VPS), thì bạn nên liên hệ với chủ nhà cung cấp dịch vụ lưu trữ để yêu cầu bật nó lên và anh ấy sẽ làm mọi thứ cho bạn, nếu anh ấy chưa làm như vậy. Đây chính xác là những gì đã xảy ra với tôi trên một dịch vụ lưu trữ.

Làm cách nào để biết tôi đã cài đặt cuộn tròn hay chưa?

Trước khi vội vàng cài đặt, hãy kiểm tra: có thể bạn đã cài đặt nó. Tôi chưa tìm thấy điều gì dễ dàng hơn việc tạo một tệp, chẳng hạn như Curl.php với nội dung:


và chạy nó thông qua trình duyệt.

Trong trang văn bản được hiển thị, bạn có thể tìm kiếm cuộn tròn trên trang và nếu không tìm thấy nó thì bạn có thể yên tâm cho rằng mình chưa cài đặt nó.

Cài đặt Curl trên Debian

Kể từ ngày xưa, khi sử dụng Ubuntu, tôi đã quen với các bản phân phối DEB và không muốn thay đổi chúng. Đó là lý do tại sao trên hầu hết các máy chủ của tôi, tôi sử dụng Debian làm hệ điều hành, điều mà tôi chưa bao giờ hối hận.

  1. Chúng tôi cài đặt mọi thứ bạn cần:
    sudo apt-get cài đặt Curl libcurl3 libcurl3-dev php5-curl php5-mcrypt
  2. Sau này, bạn chỉ cần khởi động lại Apache:
    sudo /etc/init.d/apache2 khởi động lại

Để xác nhận rằng Curl đã bắt đầu hoạt động, chúng tôi cần chạy lại tệp thử nghiệm của mình - Curl.php và thực hiện tìm kiếm lần cuối trên trang mở. Trong 99% trường hợp, bạn sẽ thấy xác nhận rằng Curl đã hoạt động và bạn có thể bắt đầu sử dụng Internet làm nô lệ.

tái bút Bây giờ là lúc bên ngoài trời đã lạnh và chính quyền thành phố của chúng tôi cũng không vội bật máy sưởi. Vào những thời điểm như vậy, sự cứu rỗi chỉ có thể được tìm thấy ở những chiếc máy sưởi khác nhau. Một tác dụng phụ của bất kỳ máy sưởi nào là nó làm khô không khí xung quanh rất nhiều. Máy tạo độ ẩm không khí trong nhà giúp chống lại điều này. Chính hai thiết bị này sẽ cùng nhau giúp nước Nga sống sót qua thời điểm khó khăn này.

16/02/2006 Jeff Felling

Curl sẽ giúp bạn quản lý dữ liệu được lưu trữ trên Web. Bài viết này thảo luận về công cụ Curl miễn phí, có thể được sử dụng để gửi và nhận các trang Web từ dòng lệnh. Curl giúp dễ dàng tự động hóa nhiều

Curl sẽ giúp bạn quản lý dữ liệu của mình trên Web

Bài viết này xem xét một công cụ miễn phí có tên Curl cho phép bạn gửi và nhận các trang Web từ dòng lệnh. Curl giúp dễ dàng tự động hóa nhiều tác vụ quản trị và bảo mật, chẳng hạn như trích xuất một trang Web để phân tích hoặc tải xuống bản vá bảo mật từ Web.

cài đặt cuộn tròn

Curl được bao gồm trong nhiều bản phân phối Unix. Các tệp nhị phân và nguồn có sẵn cho hầu hết các hệ điều hành khác. Ngay cả các lập trình viên PHP nguồn mở cũng có thể sử dụng Curl để truy cập nội dung Web một cách an toàn trực tiếp từ các tập lệnh PHP.

Curl yêu cầu gói OpenSSL để hoạt động với các trang Web Lớp cổng bảo mật (SSL). Có hai phiên bản Curl: một có SSL và một không có SSL. Tôi khuyên bạn nên sử dụng tùy chọn đầu tiên vì SSL bảo vệ dữ liệu một cách đáng tin cậy.

Trước khi có thể sử dụng Curl với chức năng SSL, bạn phải tải xuống và cài đặt riêng gói OpenSSL. Có thể tải xuống các tệp nhị phân OpenSSL cho Windows từ trang dự án GnuWin32 SourceForge tại . Có rất nhiều công cụ hữu ích khác trên trang này đã được chuyển sang Windows.

Bạn nên tải xuống và cài đặt gói OpenSSL, sau đó sao chép hai tệp DLL vào thư mục system32:

Sao chép "C:Program FilesGnuWin32 binlibeay32.dll" %windir%system32 sao chép "C:Program FilesGnuWin32 binlibssl32.dll" %windir%system32

Sau này bạn có thể cài đặt Curl. Có thể tìm thấy các tệp nhị phân Curl tương thích SSL dành cho Windows tại http://curl.haxx.se/latest.cgi?curl=win32-ssl-sspi. Phiên bản mới nhất, Curl 7.15.0, nằm trong win32-ssl-sspi.zip, chứa Curl.exe và tài liệu.

Sau khi cài đặt Curl, bạn nên đảm bảo nó hoạt động bằng cách nhập lệnh

Cuộn tròn http://isc.sans.org/infocon.txt

Nếu một từ màu xuất hiện trên màn hình (ví dụ: màu xanh lá cây), Curl đang hoạt động. Trong ví dụ đơn giản này, Curl lấy nội dung Infocon từ trang Web Internet Storm Center của Viện SANS. Màu xanh lá cây có nghĩa là Internet đang hoạt động bình thường và không có mối đe dọa nghiêm trọng nào được phát hiện. Nếu thay vì màu xanh lá cây mà các dòng chữ màu vàng, cam hoặc đỏ xuất hiện trên màn hình thì hãy đặt bài viết này sang một bên và truy cập trang web http://isc.sans.orgđể tìm hiểu về các tình trạng rủi ro cao trên Internet. Nếu xảy ra lỗi, bạn phải kiểm tra xem Curl đã được cài đặt đúng chưa.

Về cơ bản, Curl tìm nạp một trang Web và sau đó xuất nguồn HTML của trang đó ra bảng điều khiển. Tuy nhiên, khả năng của tiện ích này rộng hơn. Curl có tính năng kiểm tra lỗi tích hợp. Ví dụ, lệnh

Curl http://noserverhere

đưa ra lỗi Curl: (6) Không thể giải quyết Host: noserverhere; Không tìm thấy máy chủ. Mã lỗi có thể được sử dụng trong các tập lệnh để kiểm tra tính khả dụng của trang Web hoặc khả năng phản hồi của máy chủ Web. Ví dụ: nếu bạn sử dụng Curl để truy xuất một trang Web hàng ngày, cụ thể là số liệu thống kê trang Web hàng ngày, bạn có thể tăng cường tập lệnh bằng mã nguồn tìm kiếm mã lỗi. Nếu Curl đưa ra mã lỗi Curl: (7) không thể kết nối với máy chủ, bạn có thể đưa ra cảnh báo ngay lập tức hoặc gửi email.

Trích xuất dữ liệu được mã hóa

Một trong những ưu điểm quan trọng nhất của Curl là khả năng tương thích SSL. Các trang HTTPS được yêu cầu sẽ được gửi mã hóa qua mạng và sau đó Curl sẽ hiển thị văn bản đã khôi phục trên màn hình. Curl cũng kiểm tra chứng chỉ - ngày hết hạn của chứng chỉ, tên máy chủ có khớp với tên máy chủ trong chứng chỉ hay không và mức độ tin cậy của chứng chỉ gốc - đồng thời cảnh báo nếu chứng chỉ không chính xác. Tùy chọn -cacert cho phép bạn chỉ định một tệp chứng chỉ cụ thể. Kiểm tra chứng chỉ bị vô hiệu hóa bằng tùy chọn -k. Một cách tiếp cận khác là sử dụng tùy chọn -insecure.

Không chỉ dành cho WWW

Khả năng của Curl không chỉ đơn giản là gửi tệp qua Internet. Sử dụng Curl bạn có thể nhanh chóng liệt kê các thư mục của một trang FTP:

Curl ftp://myftpsite

Để xem các thư mục con của trang, hãy nhập lệnh

Curl ftp://myftpsite/subdir/

Để tải xuống một tệp từ Internet, chỉ cần chỉ định tên tệp trong URL. Ví dụ sau tải tệp có tên readme.txt trực tiếp từ dòng lệnh và hiển thị tệp đó trên màn hình:

Curl ftp://ftp.microsoft.com/deskapps/games/readme.txt

Việc chuẩn bị một tập lệnh có Curl để nhập các tệp FTP thường dễ dàng hơn so với sử dụng lệnh FTP một cách tương tác.

Theo mặc định, dữ liệu được xuất trực tiếp ra bảng điều khiển nhưng nó có thể được chuyển hướng đến một tệp bằng tùy chọn -o và -O. Để lấy trang và lưu nó vào đĩa, bạn phải chỉ định tùy chọn -o. Tùy chọn -O lưu trang kết quả vào một tệp cục bộ và Curl lấy tên của tài liệu từ xa. Nếu URL không bao gồm tên tệp thì thao tác này sẽ thất bại. Nếu bạn sử dụng Curl để gửi yêu cầu tới một trang Web không có tên file nhưng muốn lưu kết quả vào một file, bạn có thể chỉ định tên file trên dòng lệnh, ví dụ:

Xác thực

Curl cung cấp các phương thức xác thực Cơ bản, Tiêu hóa và Tích hợp. Trên hầu hết các trang web, các trang xác thực dựa trên biểu mẫu có thể được truy cập bằng cách sử dụng các chức năng gửi của Curl, như sẽ được trình bày bên dưới. Điều này có nghĩa là bạn có thể gửi dữ liệu biểu mẫu, chẳng hạn như tên người dùng và mật khẩu của bạn, đến một trang Web từ xa nhắc bạn nhập thông tin trên trang Web của nó. Bạn có thể sử dụng tùy chọn -u để chuyển tiếp thông tin xác thực hoặc dán chúng vào URL, như cách thực hiện truyền thống trong FTP, chẳng hạn:

Curl ftp://tên người dùng: mật khẩu@myhtmlsite

Sử dụng Curl, các kỹ thuật mượn từ FTP có thể được chuyển sang HTTP, như trong ví dụ sau:

Curl http://username:password @myhtmlsite/default.htm

Curl cũng cung cấp quyền truy cập vào các trang Web thông qua máy chủ proxy. Do đó, Curl có thể được cấu hình để sử dụng máy chủ proxy để xác thực ở các chế độ Cơ bản, Thông báo và NTLM.

Đọc tài liệu

Trong một bài viết, thật khó để đề cập đến tất cả nhiều chức năng của Curl, bao gồm tải tệp lên máy chủ (-T) và chỉ xem thông tin trong tiêu đề HTTP (-I) và xem tất cả dữ liệu ở chế độ chi tiết (-V ) và đầu ra ẩn ( -s). Tôi khuyên bạn nên xem xét kỹ hơn các tính năng của Curl trong hướng dẫn được đăng tại http://curl.haxx.se/docs .

Ví dụ sử dụng cuộn tròn

Bây giờ chúng ta đã tìm hiểu những kiến ​​thức cơ bản về Curl, hãy xem một ví dụ đơn giản về việc truy xuất dữ liệu từ một trang Web với một số thông tin đầu vào. Chúng ta hãy xây dựng một công cụ Whois đơn giản thể hiện tính đơn giản và dễ sử dụng của Curl cũng như quy trình gửi dữ liệu đến một trang Web bằng tham số -d. Trong ví dụ này, Curl gửi địa chỉ IP đến trang Web Arin Whois và sau đó lấy kết quả từ trang đó. Whois tra cứu thông tin về chủ sở hữu địa chỉ IP.

Điều quan trọng là phải nghiên cứu trang Web trước khi bắt đầu, vì mã nguồn của mỗi trang là khác nhau và Curl không phải lúc nào cũng hoạt động giống nhau trên mọi trang. Chuyến thăm sơ bộ vào trang web cho phép bạn thu thập thông tin cần thiết để Curl hoạt động. Trong ví dụ này, tôi sử dụng trình duyệt để truy cập một trang Web http://www.arin.net/whois/ và nhận thấy rằng trang web có một trường nhập dữ liệu duy nhất trong đó khách truy cập cho biết địa chỉ IP mà họ quan tâm. Bạn cần lấy thông tin chi tiết về trường này, là một phần của biểu mẫu Web. Ví dụ này sử dụng tập lệnh Perl formfind.pl ( http://cool.haxx.se/cvs.cgi/curl/perl/contrib/ formfind?rev=HEAD&content-type=text/vnd.viewcvs-markup). Tập lệnh Formfind.pl chuyển đổi dữ liệu biểu mẫu thành kết quả đầu ra hữu ích và giúp bạn dễ dàng tìm kiếm dữ liệu trong HTML theo cách thủ công. Tất nhiên, Perl phải được triển khai trên máy tính của bạn để chạy Formfind. Bạn có thể đặt mua gói Win32 Perl tốt từ trang web ActiveState ActivePerl tại http://www.activestate.com .

Hãy xem ví dụ chi tiết hơn. Trước tiên, chúng ta hãy xem một trang Web có chứa một biểu mẫu yêu cầu thông tin:

Curl -o whoisOutputFile http://www.arin.net/whois/

Lệnh này truy xuất trang Whois từ http://www.arin.net và lưu trữ nó trong tệp văn bản whoisOutputFile, chứa văn bản HTML gốc được trình duyệt hiển thị khi trang web được truy cập.

Sau đó, bạn cần tìm và chọn dữ liệu biểu mẫu:

./formfind.pl

Formfind cung cấp các biến biểu mẫu và các giá trị có thể có của chúng. Trong ví dụ này, kết quả đầu ra khá đơn giản (xem. màn hình 1).

Lưu ý dữ liệu biểu mẫu đầu vào có tên queryinput. Đây là trường văn bản mà Curl sẽ gửi địa chỉ IP mà bạn đang tìm kiếm. Địa chỉ IP cụ thể không thành vấn đề - trong ví dụ này địa chỉ Microsoft đã được sử dụng. Sử dụng tham số -d, địa chỉ IP được tìm kiếm sẽ được chuyển tiếp đến trường đầu vào truy vấn:

Curl -d "queryinput= 207.46.133.140" http://ws.arin.net/cgibin/whois.pl

Lệnh Curl với tùy chọn -d tra cứu dữ liệu trong biểu mẫu, trong trường hợp này là đầu vào truy vấn, đại diện cho địa chỉ IP đang được tìm kiếm. Trong trường hợp này, địa chỉ đích thay đổi; biểu mẫu sẽ gửi dữ liệu tới một URL mới đại diện cho tập lệnh whois.pl. Địa chỉ đích mới có thể được nhìn thấy trong đầu ra của formfind trong Màn hình 1.

Ví dụ này cũng truy xuất văn bản HTML gốc của phản hồi Whois nhưng nó bị ẩn bởi một nhóm thẻ HTML. Theo mặc định, thông báo trạng thái Curl hiển thị kích thước tài liệu, phần trăm hoàn thành và tốc độ chuyển tiếp. Đầu ra có thể được làm sạch một chút và lọc theo tên của tổ chức sở hữu địa chỉ IP. Trạng thái cuộn tròn có thể bị tắt bằng tùy chọn -s. Lệnh phải được thực thi thông qua grep để chỉ lấy OrgName:

Curl -s -d "queryinput= 207.46.133.140" http://ws.arin.net/cgibin/whois.pl | grep Tên tổ chức

Trong ví dụ này, kết quả cho thấy OrgName là Microsoft Corp.

@echo tắt Curl -k -s -d "queryinput= %1" http://ws.arin.net/cgibin/whois.pl | grep Tên tổ chức



Đã lâu rồi tôi không viết gì PHP, nên tôi quyết định viết một loạt bài ngắn dành riêng cho cảnh đẹp tráng lệ Mô-đun PHP - cURL. Nhưng trước khi bạn sử dụng nó, cURL cần được cài đặt trên Denwer, vì trong phiên bản cơ bản của gói này Xoăn Bị loại trừ.

Trước khi chuyển sang cài đặt cURL trên Denwer, hãy nói ngắn gọn về những khả năng mà mô-đun này cung cấp. Xoăn là một cách thuận tiện để mô phỏng hành động của người dùng trên máy chủ. Trên thực tế, bạn có thể kiểm tra phản hồi của máy chủ đối với một yêu cầu cụ thể. Ví dụ: bạn có thể gửi ĐĂNG yêu cầu và xem những gì máy chủ cung cấp. Ví dụ: bạn muốn kiểm tra hoạt động của hệ thống ủy quyền. Tất nhiên, bạn có thể nhập tên người dùng và mật khẩu của mình theo cách thủ công thông qua trình duyệt và xem điều gì sẽ xảy ra. Nhưng sẽ thuận tiện hơn nhiều nếu viết một loạt bài kiểm tra nhỏ trong đó gửi nhiều ví dụ khác nhau về thông tin đăng nhập và mật khẩu, đồng thời hiển thị phản hồi từ máy chủ: ủy quyền thành công hay không. Và bạn đã xem liệu tập lệnh ủy quyền có hoạt động chính xác hay không. Nó được sử dụng cho mục đích tương tự mô-đun cURL.

Bây giờ chúng ta hãy bận rộn cài đặt mô-đun cURL trên Denwer:

  • Tải xuống gói mở rộng: " PHP5: các mô-đun bổ sung" qua liên kết này: http://www.denwer.ru/packages/php5.html.
  • Cài đặt gói đã tải xuống (đầu tiên hãy dừng máy chủ nếu nó đang chạy).
  • Trong tập tin " usr/local/php5/php.ini" xóa nhận xét khỏi dòng: " ;phần mở rộng=php_curl.dll", xóa dấu ngoặc kép ở đầu dòng.
  • Khởi động máy chủ.
  • Kiểm tra dữ liệu trong phpinfo(). Nếu bạn thấy " Đã bật hỗ trợ cURL" thì mọi thứ đều ổn. Nếu không, hãy kiểm tra cẩn thận xem bạn đã hoàn thành đúng tất cả các bước hay chưa.

Tôi nghĩ rằng trong bài viết tiếp theo (và có thể là bài viết tiếp theo), chúng ta sẽ phân tích mô-đun này bằng cách sử dụng ví dụ về việc sử dụng nó trong Tập lệnh PHP, vì vậy đừng chuyển đổi!