本文实例讲述了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程序设计有所帮助。