XtGem Forum catalog
logo

Chatbox|Admin nhận làm wap/web, giá cả thương lượng... Thông tin admin tại mỗi bài viết.
Home · Bang hội ·
* Đăng Nhập hoặc Đăng Kí
để sử dụng hết chức năng của diễn đàn.
Hi, Khách!
HomeBang hội » Wapmaster » PHP » Hướng Dẫn Sử Dụng Curl Cơ Bản
Xuống dưới » Hướng Dẫn Sử Dụng Curl Cơ Bản
avatar by Pham_loi Pham_loi
Chức vụ:
23:35:30, 21-02-2016

Hi all member, hôm nay tớ sẽ hướng dẫn cho các mem 1 thư viện khá là hay và hữu ích đó là cURL, ngoài cURL ra còn có một số thư viện khác như GD,PDO, mPDF, .. từ từ ta tìm hiểu sau. Nhắc đến cURL thì nhiều mem sẽ nghĩ ngay đến công dụng đầu tiên là làm tool leech ., nhưng chỉ dừng ở đó thì đơn giản quá :D.
Ok ta sẽ tìm hiểu từ từ những cái cơ bản nhất => cái nâng cao hơn 1 chút chứ thực ra mình vẫn hiểu k hết được thằng này :D.
cấu trúc để sử dụng cURL như sau
<?
$ch = curl_init ();                     #khởi tạo một phiên làm việc với curl
curl_setopt($ch,option,value);         # các option(tùy chọn)
curl_exec($ch);                        # thực hiện phiên làm việc

Copy code

ví dụ đầu tiên
<?
$ch = curl_init ();                   
curl_setopt($ch,CURLOPT_URL,'http://teenclub.info'); #thiết lập địa chỉ đích cho phiên làm việc
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);  #thiết lập này sẽ báo cho cURL biết rằng sẽ nhận dữ liệu trả về     
$html = curl_exec($ch);#thực hiên phiên làm việc và gán dữ liệu nhận được vào biến $html
echo $html;# xuất ra giá trị của biến $html

Copy code

híc, nhìn có vẻ loằng ngoằng nhỉ, so với file_get_contents() thì thằng này dài dòng quá :D, uhm công nhận đó, nếu với việc trên với file_get_contents() chỉ cần 1 dòng là đủ
<?
echo file_get_contents ('http://teenclub.info');

Copy code

nhưng cái gì nó cũng có cái hay của nó các bạn ạ, ngắn thế kia chắc gì đã tốt mà dài thế kia chắc gì đã hay, cũng tùy cơ ứng biến thôi, nếu những ứng dụng đơn giản không yêu cầu quá phức tạp bạn hãy dùng file_get_contents() thay cURL, nhưng với những yêu cầu phức tạp hơn chắc chắn bạn phải sử dụng cURL, ví dụ đơn giản nhất là login vào 1 trang web. Ngoài ra 1 số trang sẽ chặn file_get_contents() với vài dòng code đơn giản khi đó ta phải sử dụng cURL thay thế, mình cũng có 1 demo chặn cả file_get_contents() và các cURL cơ bản ở đây http://teenclub.info/antileech/victim.php, cURL vẫn vượt được nhé chỉ là mình set thêm vài thông số để chặn các new mem thôi chứ pro vẫn vượt như thường :D, tản mạn đủ rồi mình đi vào vấn đề chính.
bay giờ mình sẽ phân tích qua các option cơ bản khi dùng cURL
curl_setopt($ch, CURLOPT_HTTPHEADER, 'header');# gửi header kèm theo phiên làm việc
    curl_setopt($ch, CURLOPT_HEADER, 1);# nhận header trả về khi thực hiện phiên cURL
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);#nhận dữ liệu trả về nếu để là 1 , không nhận để là 0
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);# nhận dữ liệu trả về dưới dạng nhị phân
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'file cookie');# thiết lập tên file sẽ lưu cooki vào sau mỗi phiên curl
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'file cookie');# thiết lập file để lấy cookie cho một phiên curl
    curl_setopt($ch, cURLOPT_REFERER, 'link');#thiết lập link referer
    curl_setopt($ch, CURLOPT_USERAGENT, 'useragent');#thiết lập thông tin trình duyệt
    curl_setopt($ch, CURLOPT_POST,1);# thiết lập thông báo rằng sẽ gửi dữ liệu để là 1, không gửi để 0
    curl_setopt($ch, CURLOPT_POSTFIELDS,'data');#thiết lập dữ liệu sẽ gửi

Copy code

trên đây là 1 số option hay dùng nhé, tiếp theo ta đi vào các ví dụ có mức độ nâng cao dần
Ví dụ 1: dùng cURL get nội dung 1 file
<?
$ch = curl_init('http://teenclub.info/file.zip');#khai báo thế này ta đã set luôn url cho nó khỏi cần curl_setopt($ch,CURLOPT_URL,'link');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);#nhận dữ liệu trả về nếu để là 1
curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);# nhận dữ liệu trả về dưới dạng nhị phân
$data = curl_exec($ch);

$f = fopen('newfile.zip',"wb"); // mở 1 file tên là newfile.zip với quyền "wb"
fwrite($f,$data);//ghi nội dung biến $data vào file
fclose($f);// đóng file

Copy code

cũng với code trên thì với 1 dòng đơn giản ta vẫn được kết quả như ý
<?
copy ('http://teenclub.info/file.zip','newfilw.zip');
?>

Copy code

vậy tại sao ta vẫn dùng cURL bởi vì nếu cái sever kia có 1 cơ chế bỏ vệ file nào đó thì copy() sẽ bó tay bắt buộc ta phải dùng cURL để giải quyết, tuy nhiên cái ấy mình sẽ có 1 bài khác chứ giờ nói k hết được :D
ví dụ 2: login vào 1 trang web
để đơn giản mình đã làm 1 trang để các bạn test, link: http://teenclub.info/log.php với user/pass = princenuce/123456
khi viewsource mã nguồn của nó mình có được form html của nó như sau
<form method="post">
username:<br><input name="username"><br>
password:<br><input name="password"><br>
<input type="submit"></form>

Copy code

bạn hãy để ý dòng name="tên trường", đó chính là 2 thông số sẽ được gửi đi khi ta nhấn submit, 2 cái ấy là username và password đó ạ
<?
    $ch = curl_init("http://teenclub.info/log.php");
    curl_setopt($ch, CURLOPT_POST,1);#thiết lập gửi dữ liệu
    curl_setopt($ch, CURLOPT_POSTFIELDS,array('username'=>'princenuce', 'password'=>'123456'));#thiết lập dữ liệu gửi
    curl_exec($ch);
    curl_close($ch);

Copy code

chạy thử coi nào.
thôi mỏi tay quá rồi hôm sau nói tiếp :D
Nguồn: daivietpda.vn

Like: 0
Lên trên  Tổng số: 1







Trực Tuyến: Khách: 1
Diễn đàn teen Việt Nam
CopyRight 2014