php可以扮演资料的发送者。
简单的get
$ch = curl_init(); curl_setopt( $ch , CURLOPT_URL, "http://SomeDomain/SamplePath?SomeVar=test" ); curl_exec( $ch ); curl_close( $ch ); |
2. 简单的post
$ch = curl_init(); curl_setopt( $ch , CURLOPT_URL, "http://SomeDomain/SamplePath" ); curl_setopt( $ch , CURLOPT_POST, true); // 啟用POST curl_setopt( $ch , CURLOPT_POSTFIELDS, http_build_query( array ( "a" => "123" , "b" => "321" ) )); curl_exec( $ch ); curl_close( $ch ); |
3. 高级的post,可设置多个参数
$toURL = "http://SomeDomain/SamplePath?SomeVar=XX" ; $post = array ( "a" => "123" , "b" => "321" , ); $ch = curl_init(); $options = array ( CURLOPT_URL=> $toURL , CURLOPT_HEADER=>0, CURLOPT_VERBOSE=>0, CURLOPT_RETURNTRANSFER=>true, CURLOPT_USERAGENT=> "Mozilla/4.0 (compatible;)" , CURLOPT_POST=>true, CURLOPT_POSTFIELDS=>http_build_query( $post ), ); curl_setopt_array( $ch , $options ); // CURLOPT_RETURNTRANSFER=true 会返回服务器响应代码, // false 时只返回成功与否; $result = curl_exec( $ch ); curl_close( $ch ); echo $result ; |
4. post 发送文件
发送端代码:
$target_url = 'http://127.0.0.1/accept.php' ; //This needs to be the full path to the file you want to send. $file_name_with_full_path = realpath ( './sample.jpeg' ); /* curl will accept an array here too. * Many examples I found showed a url-encoded string instead. * Take note that the 'key' in the array will be the key that shows up in the * $_FILES array of the accept script. and the at sign '@' is required before the * file name. */ $post = array ( 'extra_info' => '123456' , 'file_contents' => '@' . $file_name_with_full_path ); $ch = curl_init(); curl_setopt( $ch , CURLOPT_URL, $target_url ); curl_setopt( $ch , CURLOPT_POST,1); curl_setopt( $ch , CURLOPT_POSTFIELDS, $post ); curl_setopt( $ch , CURLOPT_RETURNTRANSFER,1); $result =curl_exec ( $ch ); curl_close ( $ch ); echo $result ; |
接收端代码:
$uploaddir = realpath ( './' ) . '/' ; $uploadfile = $uploaddir . basename ( $_FILES [ 'file_contents' ][ 'name' ]); echo '<pre>' ; if (move_uploaded_file( $_FILES [ 'file_contents' ][ 'tmp_name' ], $uploadfile )) { echo "File is valid, and was successfully uploaded.\n" ; } else { echo "Possible file upload attack!\n" ; } echo 'Here is some more debugging info:' ; print_r( $_FILES ); echo "\n<hr />\n" ; print_r( $_POST ); print "</pr" . "e>\n" ; |