当前位置: 代码迷 >> PHP >> php curl的几段小使用
  详细解决方案

php curl的几段小使用

热度:762   发布时间:2012-12-23 11:28:15.0
php curl的几段小应用

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

1 测试网站是否运行正常?
??
Java代码? ?收藏代码
  1. <???
  2. ??
  3. ??if?(isDomainAvailible('http://gz.itownet.cn'))??
  4. ???????{??
  5. ???????????????echo?"Up?and?running!";??
  6. ???????}??
  7. ???????else??
  8. ???????{??
  9. ???????????????echo?"Woops,?nothing?found?there.";??
  10. ???????}??
  11. ??
  12. ???????//returns?true,?if?domain?is?availible,?false?if?not??
  13. ???????function?isDomainAvailible($domain)??
  14. ???????{??
  15. ???????????????//check,?if?a?valid?url?is?provided??
  16. ???????????????if(!filter_var($domain,?FILTER_VALIDATE_URL))??
  17. ???????????????{??
  18. ???????????????????????return?false;??
  19. ???????????????}??
  20. ??
  21. ???????????????//initialize?curl??
  22. ???????????????$curlInit?=?curl_init($domain);??
  23. ???????????????curl_setopt($curlInit,CURLOPT_CONNECTTIMEOUT,10);??
  24. ???????????????curl_setopt($curlInit,CURLOPT_HEADER,true);??
  25. ???????????????curl_setopt($curlInit,CURLOPT_NOBODY,true);??
  26. ???????????????curl_setopt($curlInit,CURLOPT_RETURNTRANSFER,true);??
  27. ??
  28. ???????????????//get?answer??
  29. ???????????????$response?=?curl_exec($curlInit);??
  30. ??
  31. ???????????????curl_close($curlInit);??
  32. ??
  33. ???????????????if?($response)?return?true;??
  34. ??
  35. ???????????????return?false;??
  36. ???????}??
  37. ?>??


2 可以代替file_gecontents的操作?
???
Java代码? ?收藏代码
  1. function?file_get_contents_curl($url)?{??
  2. ????$ch?=?curl_init();??
  3. ??
  4. ????curl_setopt($ch,?CURLOPT_HEADER,?0);??
  5. ????curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);?//Set?curl?to?return?the?data?instead?of?printing?it?to?the?browser.??
  6. ????curl_setopt($ch,?CURLOPT_URL,?$url);??
  7. ??
  8. ????$data?=?curl_exec($ch);??
  9. ????curl_close($ch);??
  10. ??
  11. ????return?$data;??
  12. }??


3 保存某个网站下的所有图片?
??
Java代码? ?收藏代码
  1. ??function?getImages($html)?{??
  2. ????$matches?=?array();??
  3. ????$regex?=?'~http://somedomain.com/images/(.*?)\.jpg~i';??
  4. ????preg_match_all($regex,?$html,?$matches);??
  5. ????foreach?($matches[1]?as?$img)?{??
  6. ????????saveImg($img);??
  7. ????}??
  8. }??
  9. ??
  10. function?saveImg($name)?{??
  11. ????$url?=?'http://somedomain.com/images/'.$name.'.jpg';??
  12. ????$data?=?get_data($url);??
  13. ????file_put_contents('photos/'.$name.'.jpg',?$data);??
  14. }??
  15. ??
  16. $i?=?1;??
  17. $l?=?101;??
  18. ??
  19. while?($i?<?$l)?{??
  20. ????$html?=?get_data('http://somedomain.com/id/'.$i.'/');??
  21. ????getImages($html);??
  22. ????$i?+=?1;??
  23. }??


4 FTP应用?
?
Java代码? ?收藏代码
  1. //?open?a?file?pointer??
  2. $file?=?fopen("/path/to/file",?"r");??
  3. ??
  4. //?the?url?contains?most?of?the?info?needed??
  5. $url?=?"ftp://username:password@mydomain.com:21/path/to/new/file";??
  6. ??
  7. $ch?=?curl_init();??
  8. ??
  9. curl_setopt($ch,?CURLOPT_URL,?$url);??
  10. curl_setopt($ch,?CURLOPT_RETURNTRANSFER,?1);??
  11. ??
  12. //?upload?related?options??
  13. curl_setopt($ch,?CURLOPT_UPLOAD,?1);??
  14. curl_setopt($ch,?CURLOPT_INFILE,?$fp);??
  15. curl_setopt($ch,?CURLOPT_INFILESIZE,?filesize("/path/to/file"));??
  16. ??
  17. //?set?for?ASCII?mode?(e.g.?text?files)??
  18. curl_setopt($ch,?CURLOPT_FTPASCII,?1);??
  19. ??
  20. $output?=?curl_exec($ch);??
  21. curl_close($ch); ?

?