PHP CURL實現(xiàn)模擬登陸并上傳文件操作示例
本文實例講述了PHP CURL實現(xiàn)模擬登陸并上傳文件操作。分享給大家供大家參考,具體如下:
<?php
header('content-type:text/html;charset=gb2312');
//要注意你需要上傳的網(wǎng)站服務器的運行環(huán)境,還要看它的請求是否被壓縮和轉碼還有就是
//在框架中或者說php5.3以下的版本可以用@,但是其它的就只能用new CURLfile()函數(shù)來轉化文件了
//注意你要發(fā)送的服務器的header頭的結構和特殊參數(shù),實在不行就自己構建一個。廢話不多說,直接上代碼。
function curl_form($post_data,$sumbit_url,$http_url,$cookie_file){
$headers = array();
$headers[] = 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$headers[] = 'Cache-Control: max-age=0';
$headers[] = 'Accept-Encoding: gzip, deflate';
$headers[] = 'Origin: http://my.***.com';
$headers[] = 'Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3';
$headers[] = 'Upgrade-Insecure-Requests: 1';
$headers[] = 'Content-Type: application/x-www-form-urlencoded';
$headers[] = 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:28.0) Gecko/20100101 Firefox/28.0';
$headers[] = 'Connection: keep-alive';
// $headers[] = 'Cookie: ASPSESSIONIDCCTCTQQC=KBGLPDKBIKDIDCBGFOKNMKOE';
//初始化
$ch = curl_init();
//設置變量
curl_setopt($ch, CURLOPT_URL, $sumbit_url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//執(zhí)行結果是否被返回,0是返回,1是不返回
curl_setopt($ch, CURLOPT_HEADER, 0);//參數(shù)設置,是否顯示頭部信息,1為顯示,0為不顯示
curl_setopt($ch, CURLOPT_REFERER, $http_url);
//表單數(shù)據(jù),是正規(guī)的表單設置值為非0
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch,CURLOPT_PROXY,'127.0.0.1:8888');
// curl_setopt($ch, CURLOPT_ENCODING, "");
// curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));
//執(zhí)行并獲取結果
$output = curl_exec($ch);
if($output === FALSE)
{
echo "<br/>","cUrl Error:".curl_error($ch);
}else{
return $output;
}
// 釋放cURL句柄
curl_close($ch);
}
$temp = array();
$temp['title'] = iconv( "utf-8", "gb2312//IGNORE" , "牛排店加盟");
$temp['ly'] = iconv( "utf-8", "gb2312//IGNORE" , "特色餐飲加盟");
$temp['classid'] = iconv( "utf-8", "gb2312//IGNORE" , "7159");
$temp['newssort'] = iconv( "utf-8", "gb2312//IGNORE" , "1");
$temp['panduan'] = iconv( "utf-8", "gb2312//IGNORE" , "0");
$temp['submit_button'] = iconv( "utf-8", "gb2312//IGNORE" , "發(fā)布");
$temp['addr'] = iconv( "utf-8", "gb2312//IGNORE" , "bjcanyin");
$temp['ContentBg'] = "";
$temp['newss'] = iconv( "utf-8", "gb2312//IGNORE" , htmlspecialchars_decode("<p>阿會計師的賀卡收到框架</p><p><img alt=\"\"
src=\" http://localhost/super/Uploads/img/2017-08-10/598c145a9527e.jpg\" style=\"height:243px; width:324px\" /></p>", ENT_QUOTES));
$cookie_file = dirname(__FILE__)."/jdzj.tmp";
$sumbit_url = "http://***/news/***.asp";
$http_url="http://***/news/***.asp?act=addok";
$img = curl_form($temp,$http_url,$sumbit_url,$cookie_file);
var_dump($img);
PS:關于PHP curl選項詳細說明可參考http://www.dhdzp.com/article/39331.htm
更多關于PHP相關內容感興趣的讀者可查看本站專題:《php curl用法總結》、《PHP網(wǎng)絡編程技巧總結》、《PHP數(shù)組(Array)操作技巧大全》、《php字符串(string)用法總結》、《PHP數(shù)據(jù)結構與算法教程》及《PHP中json格式數(shù)據(jù)操作技巧匯總》
希望本文所述對大家PHP程序設計有所幫助。
相關文章
PHP編程實現(xiàn)多維數(shù)組按照某個鍵值排序的方法小結【2種方法】
這篇文章主要介紹了PHP編程實現(xiàn)多維數(shù)組按照某個鍵值排序的方法,結合實例形式分析了array_multisort和array_sort 2種排序操作方法,需要的朋友可以參考下2017-04-04
PHP simple_html_dom.php+正則 采集文章代碼
網(wǎng)上也有很多人也在用PHP Simple Dom 雖然效率慢了點,但效果還是不錯的從包含類庫文件到寫入txt文件 大概是7/8就秒。2009-12-12
PHP正則表達式函數(shù)preg_replace用法實例分析
這篇文章主要介紹了PHP正則表達式函數(shù)preg_replace用法,結合實例形式分析了PHP正則表達式函數(shù)preg_replace基本功能、參數(shù)描述與相關使用技巧,需要的朋友可以參考下2020-06-06
mysql 中InnoDB和MyISAM的區(qū)別分析小結
InnoDB和MyISAM是在使用MySQL最常用的兩個表類型,各有優(yōu)缺點,視具體應用而定。基本的差別為:MyISAM類型不支持事務處理等高級處理,而InnoDB類型支持。MyISAM類型的表強調的是性能,其執(zhí)行數(shù)度比InnoDB類型更快,但是不提供事務支持,而InnoDB提供事務支持已經(jīng)外部鍵等高級數(shù)據(jù)庫功能。2008-04-04

