本文实例讲述了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 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.132 Safari/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"
具体代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
function getCurlCommand()
{
try {
if (php_sapi_name() == 'error cli' ){
throw new Exception( "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 ( $_SERVER as $name => $value ) {
if ( substr ( $name , 0, 5) == 'HTTP_' ) {
$headers [ str_replace ( ' ' , '-' , ucwords( strtolower ( str_replace ( '_' , ' ' , substr ( $name , 5)))))] = $value ;
}
}
}
foreach ( $headers as $key => $value ) {
if ( $key == 'Accept-Encoding' ) $value = str_replace ( 'gzip, ' , '' , $value );
$curlCommand .= ' -H "' . $key . ':' . $value . '"' ;
}
return $curlCommand ;
} catch (Exception $e ) {
return $e ->getMessage();
}
}
echo getCurlCommand();
|
希望本文所述对大家php程序设计有所帮助。