gurl.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. function curlprogress($curli,$dlsz=0,$dled=0,$ulsz=0,$uled=0) {
  3. // echo "DL: ${dled}; UL: ${uled}\n";
  4. }
  5. function gurl($url,$conntimeout=5,$functimeout=10,$headers=[]) {
  6. $curli=curl_init();
  7. /* curl_setopt($curli,CURLOPT_NOPROGRESS,false);
  8. curl_setopt($curli,CURLOPT_PROGRESSFUNCTION,'curlprogress');*/
  9. curl_setopt($curli,CURLOPT_URL,$url);
  10. curl_setopt($curli,CURLOPT_RETURNTRANSFER,true);
  11. curl_setopt($curli,CURLOPT_FAILONERROR,true);
  12. curl_setopt($curli,CURLOPT_CONNECTTIMEOUT,$conntimeout+0);
  13. curl_setopt($curli,CURLOPT_TIMEOUT,$functimeout+0);
  14. curl_setopt($curli,CURLOPT_HTTPHEADER,$headers);
  15. curl_setopt($curli,CURLOPT_HEADER,true);
  16. curl_setopt($curli,CURLOPT_ENCODING,'');
  17. curl_setopt($curli,CURLOPT_USERAGENT,'Mozilla/5.0 (X11; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0');
  18. $gheaders='';
  19. $ecode=false;
  20. $emsg=false;
  21. $cont=curl_exec($curli);
  22. if ($cont!==false) {
  23. $gheaders_sz=curl_getinfo($curli,CURLINFO_HEADER_SIZE);
  24. $gheaders=strtolower(substr($cont,0,$gheaders_sz));
  25. $cont=substr($cont,$gheaders_sz);
  26. } else {
  27. $ecode=curl_errno($curli);
  28. $emsg=$ecode.': '.trim(curl_error($curli));
  29. }
  30. curl_close($curli);
  31. return(['cont'=>$cont,'headers'=>$gheaders,'ecode'=>$ecode,'emsg'=>$emsg]);
  32. }
  33. ?>