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程序设计有所帮助。