php生成curl命令行的方法
本文实例讲述了php生成curl命令行的方法。分享给大家供大家参考,具体如下:
示例:
curl"http://localhost/other/serverInfo.php?dd=ddd"-H"Host:localhost"-H"Connection:keep-alive"-H"Cache-Control:max-age=0"-H"Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"-H"User-Agent:Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/43.0.2357.132Safari/537.36"-H"DNT:1"-H"Accept-Encoding:deflate,sdch"-H"Accept-Language:zh-CN,zh;q=0.8,en;q=0.6"-H"Cookie:name=richie;email=richie@qq.com"
具体代码如下:
functiongetCurlCommand() { try{ if(php_sapi_name()=='errorcli'){ thrownewException("cli"); } $curlCommand='curl'; $postData=$getData=''; if($_GET){ $gets=http_build_query($_GET); $getData.=strpos($curlCommand,'?')?'&'.$gets:'?'.$gets; } if($_SERVER['REQUEST_METHOD']=='POST'){ $posts=http_build_query($_POST); $postData='-d"'.$posts.'"'; } $path=isset($_SERVER['SCRIPT_NAME'])?$_SERVER['SCRIPT_NAME']:$_SERVER['PHP_SELF']; $curlCommand.='"'."http://{$_SERVER['HTTP_HOST']}".$path.$getData.'"'; if($postData){ $curlCommand.=$postData; } $headers=array(); if(function_exists('getallheaders')){ $headers=getallheaders(); }else{ foreach($_SERVERas$name=>$value){ if(substr($name,0,5)=='HTTP_'){ $headers[str_replace('','-',ucwords(strtolower(str_replace('_','',substr($name,5)))))]=$value; } } } foreach($headersas$key=>$value){ if($key=='Accept-Encoding')$value=str_replace('gzip,','',$value); $curlCommand.='-H"'.$key.':'.$value.'"'; } return$curlCommand; }catch(Exception$e){ return$e->getMessage(); } } echogetCurlCommand();
希望本文所述对大家php程序设计有所帮助。