1.curl介绍
curl是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP、FTP、TELNET等。常用有接口通信、数据采集等。您可能会将此技能使用在支付、第三方登录、微信开发、数据采集等项目模块中。
开启方法:在php.ini文件中开启extension=php_curl.dll
检查是否开启
1 <?php 2 $curl = curl_init(); 3 // 开启成功 resource(2) of type (curl) 4 var_dump($curl); 5 ?>
2.使用curl进行get访问
get.php
1 <?php 2 echo 'get string'; 3 ?>
testGet.php
1 <?php 2 3 $ch = curl_init(); 4 $url = 'http://localhost/curl/get.php'; 5 6 curl_setopt($ch, CURLOPT_URL, $url); 7 // 使获取的页面内容不输出到页面, 而是返回到下面的$str 8 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 9 10 // 跳过SSL证书检查 11 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 12 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 13 14 // 页面内容采用了gzip压缩的解决方法 15 curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); 16 17 // 设置超时时间(s) (默认情况下为不限制) 18 curl_setopt($ch, CURLOPT_TIMEOUT, 10); 19 20 // 获取页面内容 21 $str = curl_exec($ch); 22 echo $str; 23 24 // 获取请求信息 25 $curlInfo = curl_getinfo($ch); 26 echo '<pre>'; 27 print_r($curlInfo); 28 if ($curlInfo['http_code'] == 200) { 29 echo 'ok'; 30 } 31 32 ?>
3.使用curl进行post访问
post.php
1 <?php 2 if (!empty($_POST)) { 3 echo $_POST['name']; 4 } 5 ?>
testPost.php
1 <?php 2 3 $ch = curl_init(); 4 $url = 'http://localhost/curl/post.php'; 5 6 curl_setopt($ch, CURLOPT_URL, $url); 7 // 使获取的页面内容不输出到页面, 而是返回到下面的$str 8 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 9 10 // 设置访问方式为POST 11 curl_setopt($ch, CURLOPT_POST, 1); 12 13 //发送对应的POST数据 支持的格式 1-数组模式 2-&模式 14 curl_setopt($ch, CURLOPT_POSTFIELDS, array('name'=>'yx')); 15 16 // 跳过SSL证书检查 17 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 18 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 19 20 // 页面内容采用了gzip压缩的解决方法 21 curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); 22 23 // 设置超时时间(s) (默认情况下为不限制) 24 curl_setopt($ch, CURLOPT_TIMEOUT, 10); 25 26 // 获取页面内容 27 $str = curl_exec($ch); 28 $curlInfo = curl_getinfo($ch); 29 if ($curlInfo['http_code'] == 200) { 30 echo $str; 31 } 32 33 ?>