生活随笔
收集整理的這篇文章主要介紹了
php 利用fsockopen GET/POST 提交表单及上传文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.GET
get.php
[php]?view plaincopy
<?php??$host?=?'demo.fdipzone.com';??$port?=?80;??$errno?=?'';??$errstr?=?'';??$timeout?=?30;??$url?=?'/socket/getapi.php';????$param?=?array(??????'name'?=>?'fdipzone',??????'gender'?=>?'man'??);????$url?=?$url.'?'.http_build_query($param);????$fp?=?fsockopen($host,?$port,?$errno,?$errstr,?$timeout);????if(!$fp){??????return?false;??}????$out?=?"GET?${url}?HTTP/1.1\r\n";??$out?.=?"Host:?${host}\r\n";??$out?.=?"Connection:close\r\n\r\n";????fputs($fp,?$out);????$response?=?'';??while($row=fread($fp,?4096)){??????$response?.=?$row;??}????fclose($fp);????$pos?=?strpos($response,?"\r\n\r\n");??$response?=?substr($response,?$pos+4);????echo?$response;???>?? getapi.php
[php]?view plaincopy
<?php??$name?=?$_GET['name'];??$gender?=?$_GET['gender'];????echo?'name='.$name.'<br>';??echo?'gender='.$gender;???>?? 2.POST
post.php
[php]?view plaincopy
<?php??$host?=?'demo.fdipzone.com';??$port?=?80;??$errno?=?'';??$errstr?=?'';??$timeout?=?30;??$url?=?'/socket/postapi.php';????$param?=?array(??????'name'?=>?'fdipzone',??????'gender'?=>?'man',??????'photo'?=>?file_get_contents('photo.jpg')??);????$data?=?http_build_query($param);????$fp?=?fsockopen($host,?$port,?$errno,?$errstr,?$timeout);????if(!$fp){??????return?false;??}????$out?=?"POST?${url}?HTTP/1.1\r\n";??$out?.=?"Host:${host}\r\n";??$out?.=?"Content-type:application/x-www-form-urlencoded\r\n";??$out?.=?"Content-length:".strlen($data)."\r\n";??$out?.=?"Connection:close\r\n\r\n";??$out?.=?"${data}";????fputs($fp,?$out);????$response?=?'';??while($row=fread($fp,?4096)){??????$response?.=?$row;??}????fclose($fp);????$pos?=?strpos($response,?"\r\n\r\n");??$response?=?substr($response,?$pos+4);????echo?$response;???>?? postapi.php
[php]?view plaincopy
<?php??define('UPLOAD_PATH',?dirname(__FILE__).'/upload');????$name?=?$_POST['name'];??$gender?=?$_POST['gender'];??$photo?=?$_POST['photo'];????$filename?=?time().'.jpg';??file_put_contents(UPLOAD_PATH.'/'.$filename,?$photo,?true);????echo?'name='.$name.'<br>';??echo?'gender='.$gender.'<br>';??echo?'<img?src="upload/'.$filename.'">';???>?? 3.上傳文件
file.php
[php]?view plaincopy
<?php??$host?=?'demo.fdipzone.com';??$port?=?80;??$errno?=?'';??$errstr?=?'';??$timeout?=?30;??$url?=?'/socket/fileapi.php';????$form_data?=?array(??????'name'?=>?'fdipzone',??????'gender'?=>?'man',??);????$file_data?=?array(??????array(??????????'name'?=>?'photo',??????????'filename'?=>?'photo.jpg',??????????'path'?=>'photo.jpg'??????)??);????$fp?=?fsockopen($host,?$port,?$errno,?$errstr,?$timeout);????if(!$fp){??????return?false;??}????srand((double)microtime()*1000000);??$boundary?=?"---------------------------".substr(md5(rand(0,32000)),0,10);????$data?=?"--$boundary\r\n";????foreach($form_data?as?$key=>$val){??????$data?.=?"Content-Disposition:?form-data;?name=\"".$key."\"\r\n";??????$data?.=?"Content-type:text/plain\r\n\r\n";??????$data?.=?rawurlencode($val)."\r\n";??????$data?.=?"--$boundary\r\n";??}????foreach($file_data?as?$file){??????$data?.=?"Content-Disposition:?form-data;?name=\"".$file['name']."\";?filename=\"".$file['filename']."\"\r\n";??????$data?.=?"Content-Type:?".mime_content_type($file['path'])."\r\n\r\n";??????$data?.=?implode("",file($file['path']))."\r\n";??????$data?.=?"--$boundary\r\n";??}????$data?.="--\r\n\r\n";????$out?=?"POST?${url}?HTTP/1.1\r\n";??$out?.=?"Host:${host}\r\n";??$out?.=?"Content-type:multipart/form-data;?boundary=$boundary\r\n";?$out?.=?"Content-length:".strlen($data)."\r\n";??$out?.=?"Connection:close\r\n\r\n";??$out?.=?"${data}";????fputs($fp,?$out);????$response?=?'';??while($row=fread($fp,?4096)){??????$response?.=?$row;??}????fclose($fp);????$pos?=?strpos($response,?"\r\n\r\n");??$response?=?substr($response,?$pos+4);????echo?$response;???>?? fileapi.php
[php]?view plaincopy
<?php??define('UPLOAD_PATH',?dirname(__FILE__).'/upload');????$name?=?$_POST['name'];??$gender?=?$_POST['gender'];????$filename?=?time().'.jpg';????echo?'name='.$name.'<br>';??echo?'gender='.$gender.'<br>';??if(move_uploaded_file($_FILES['photo']['tmp_name'],?UPLOAD_PATH.'/'.$filename)){??????echo?'<img?src="upload/'.$filename.'">';??}???>?? 源碼下載地址:點擊下載
總結
以上是生活随笔為你收集整理的php 利用fsockopen GET/POST 提交表单及上传文件的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。