Jadual Kandungan
一波PHP中cURL库的常见用法代码示例,一波curl
Rumah php教程 php手册 一波PHP中cURL库的常见用法代码示例,一波curl

一波PHP中cURL库的常见用法代码示例,一波curl

Jun 13, 2016 am 08:41 AM
curl php

一波PHP中cURL库的常见用法代码示例,一波curl

php 的CURL是不错的功能,下面收藏几段不错的片段

0、基本例子
一般流程:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

$to_url=$_GET['url'];

print_r($_GET);

if(substr($to_url,0,1)=='/'){

 $to_url="http://www.amazon.com".$to_url;

}

echo $to_url;

//初始化

$ch = curl_init();

//设置选项,包括URL

curl_setopt($ch, CURLOPT_URL, $to_url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 0);

//执行并获取HTML文档内容

$output = curl_exec($ch);

$output=preg_replace("#href=\"#","href=\"http://in2.qq-ex.com/amazon.php?url=",$output);

// 释放curl句柄

curl_close($ch);

echo $output;

// 指定代理地址

curl_setopt($ch, CURLOPT_PROXY, '11.11.11.11:8080');

// 如果需要的话,提供用户名和密码

curl_setopt($ch, CURLOPT_PROXYUSERPWD,'user:pass');

Salin selepas log masuk

1、测试网站是否运行正常

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

if (isDomainAvailible('http://gz.itownet.cn'))

 {

   echo "Up and running!";

 }

 else

 {

   echo "Woops, nothing found there.";

 }

 

 //returns true, if domain is availible, false if not

 function isDomainAvailible($domain)

 {

   //check, if a valid url is provided

   if(!filter_var($domain, FILTER_VALIDATE_URL))

   {

     return false;

   }

 

   //initialize curl

   $curlInit = curl_init($domain);

   curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);

   curl_setopt($curlInit,CURLOPT_HEADER,true);

   curl_setopt($curlInit,CURLOPT_NOBODY,true);

   curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);

 

   //get answer

   $response = curl_exec($curlInit);

 

   curl_close($curlInit);

 

   if ($response) return true;

 

   return false;

 }

Salin selepas log masuk

2、可以代替file_gecontents的操作

1

2

3

4

5

6

7

8

9

10

11

12

function file_get_contents_curl($url) {

 $ch = curl_init();

  

 curl_setopt($ch, CURLOPT_HEADER, 0);

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //Set curl to return the data instead of printing it to the browser.

 curl_setopt($ch, CURLOPT_URL, $url);

  

 $data = curl_exec($ch);

 curl_close($ch);

  

 return $data;

}

Salin selepas log masuk

3、保存某个网站下的所有图片

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

function getImages($html) {

 $matches = array();

 $regex = '~http://somedomain.com/images/(.*?)\.jpg~i';

 preg_match_all($regex, $html, $matches);

 foreach ($matches[1] as $img) {

  saveImg($img);

 }

}

  

function saveImg($name) {

 $url = 'http://somedomain.com/images/'.$name.'.jpg';

 $data = get_data($url);

 file_put_contents('photos/'.$name.'.jpg', $data);

}

  

$i = 1;

$l = 101;

  

while ($i < $l) {

 $html = get_data('http://somedomain.com/id/'.$i.'/');

 getImages($html);

 $i += 1;

}

Salin selepas log masuk

4、FTP应用

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

// open a file pointer

$file = fopen("/path/to/file", "r");

  

// the url contains most of the info needed

$url = "ftp://username:password@mydomain.com:21/path/to/new/file";

  

$ch = curl_init();

  

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

  

// upload related options

curl_setopt($ch, CURLOPT_UPLOAD, 1);

curl_setopt($ch, CURLOPT_INFILE, $fp);

curl_setopt($ch, CURLOPT_INFILESIZE, filesize("/path/to/file"));

  

// set for ASCII mode (e.g. text files)

curl_setopt($ch, CURLOPT_FTPASCII, 1);

  

$output = curl_exec($ch);

curl_close($ch);

Salin selepas log masuk

5、使用curl发送JSON数据

1

2

3

4

5

6

7

8

9

10

11

12

13

$data = array("name" => "Hagrid", "age" => "36");                                  

$data_string = json_encode($data);                                          

   

$ch = curl_init('http://api.local/rest/users');                                   

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                   

curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);                                 

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                   

curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                     

  'Content-Type: application/json',                                        

  'Content-Length: ' . strlen($data_string))                                    

);                                                          

   

$result = curl_exec($ch);

Salin selepas log masuk

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian

Konfigurasi Projek CakePHP Konfigurasi Projek CakePHP Sep 10, 2024 pm 05:25 PM

Konfigurasi Projek CakePHP

Tarikh dan Masa CakePHP Tarikh dan Masa CakePHP Sep 10, 2024 pm 05:27 PM

Tarikh dan Masa CakePHP

Muat naik Fail CakePHP Muat naik Fail CakePHP Sep 10, 2024 pm 05:27 PM

Muat naik Fail CakePHP

Penghalaan CakePHP Penghalaan CakePHP Sep 10, 2024 pm 05:25 PM

Penghalaan CakePHP

Bincangkan CakePHP Bincangkan CakePHP Sep 10, 2024 pm 05:28 PM

Bincangkan CakePHP

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP

Panduan Ringkas CakePHP Panduan Ringkas CakePHP Sep 10, 2024 pm 05:27 PM

Panduan Ringkas CakePHP

See all articles