繁体   English   中英

php curl保存下载文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM