[英]php curl save download file
我将其另存为php文件在本地,并且在浏览器中工作正常
<form name="Form" method="post" action="http://www.idx.co.id/en-us/home/listedcompanies/issuedhistory.aspx" id="Form" enctype="multipart/form-data"><div><input type="hidden" name="StylesheetManager_TSSM" id="StylesheetManager_TSSM" value="" /><input type="hidden" name="ScriptManager_TSM" id="ScriptManager_TSM" value="" /><input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="dnn$ctr951$MainView$lbDownload" /><input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" /></div></form>
<script>
document.getElementById("Form").submit();
</script>
但是如何做到这一点呢? 我试过了
function download($url, $path)
{
$fp = fopen ($path, 'w');
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, false );
curl_setopt( $ch, CURLOPT_BINARYTRANSFER, true );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 30 );
curl_setopt( $ch, CURLOPT_FILE, $fp );
$params = "StylesheetManager_TSSM=&ScriptManager_TSM=&__EVENTTARGET=dnn$ctr951$MainView$lbDownload&__EVENTARGUMENT=";
curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
curl_exec( $ch );
curl_close( $ch );
fclose( $fp );
if (filesize($path) > 0) return true;
}
$url = 'http://www.idx.co.id/en-us/home/listedcompanies/issuedhistory.aspx';
$path = 'corpactions.csv';
if (download($url, $path)){
echo 'Download complete!';
}
但无法正常工作,因此下载了另一页
尝试更改此
$params = "StylesheetManager_TSSM=&ScriptManager_TSM=&__EVENTTARGET=dnn$ctr951$MainView$lbDownload&__EVENTARGUMENT=";
变成这个:
$params = 'StylesheetManager_TSSM=&ScriptManager_TSM=&__EVENTTARGET=dnn$ctr951$MainView$lbDownload&__EVENTARGUMENT=';
问题可能是$ czt951将被解析为php var。
有关更多详细信息,请阅读此答案: https : //stackoverflow.com/a/3446286/2441442
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.