我将此保存为本地的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!';
}
但它没有按预期工作,它下载了另一页
答案 0 :(得分:1)
尝试更改此
$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