簡體   English   中英

使用file_put_contents()時的動態文件名,可以嗎?

[英]Dynamic filename when using file_put_contents(), is it possible?

好吧,所以我試圖完成以下任務:

  • 生成一個基於當前日期+當前時間+名為skift的變量的文件名的PDF。
  • 將所述文件放置在名稱為skiftrapportPDF的靜態文件夾中,並將其放置在名為YearMonth示例(201404)的子文件夾中

我已經收集了一個名為$ filename的變量,當我回顯$ filename時,得到以下結果。

/skiftrapportPDF/201404/Skiftrapport2014-04-16_125449-Orange.pdf

我的密碼

        $dir = dirname(__FILE__);
        $skift = $_POST['skift'];
        $datum = Date("Y-m-d");
        $tid = Date("H:i:s");
        if($skift=='1')$skift='Svart';if($skift=='2')$skift='Blå';if($skift=='3')$skift='Röd';if($skift=='4')$skift='Orange';

        //this is when i have generated my $html
        require_once($dir.'/skift_rapport_pdf.php');

        require_once($dir.'/include/dompdf/dompdf_config.inc.php');  

        $dompdf = new DOMPDF(); // Create new instance of dompdf  
        $dompdf->load_html($html); // Load the html  
        $dompdf->render(); // Parse the html, convert to PDF  
        $pdf_content = $dompdf->output(); // Put contents of pdf into variable for later

        $month  = date('Ym');

        if (!is_dir("skiftrapportPDF/".$month)) {
          // dir doesn't exist, make it
          mkdir("skiftrapportPDF/".$month);
}
        $skift = $_POST['skift'];
        $datum = Date("Y-m-d");
        $tid = Date("His");
        if($skift=='1')$skift='Svart';if($skift=='2')$skift='Blå';if($skift=='3')$skift='Röd';if($skift=='4')$skift='Orange';
        $filename = '/skiftrapportPDF/'.$month.'/Skiftrapport'.$datum.'_'.$tid.'-'.$skift.'.pdf';

    //I've tried using either of the following....
    file_put_contents($filename, $pdf_content);
    //Commented to try using file_put_contents()
    //$fp = fopen($filename, "a"); 
    //fwrite($fp, $pdf_content); 
    //fclose($fp);

使用fopen(),fwrite,fclose給我這個錯誤:

Warning: fopen(/skiftrapportPDF/201404/Skiftrapport2014-04-16_125449-Orange.pdf) [function.fopen]: failed to open stream: No such file or directory in file.php on line 863

和使用file_put_contents()給我這個錯誤。

Warning: file_put_contents(/skiftrapportPDF/201404/Skiftrapport2014-04-16_144631-Orange.pdf) [function.file-put-contents]: failed to open stream: No such file or directory in file.php on line 857

您只需要重寫以下行。

請使用完整的服務器路徑,或者從文件中刪除開頭的“ /”。

1)像這樣使用

$filename = $_SERVER['DOCUMENT_ROOT'] . '/skiftrapportPDF/'.$month.'/Skiftrapport'.$datum.'_'.$tid.'-'.$skift.'.pdf';

或按照以下方式寫

$filename = 'skiftrapportPDF/'.$month.'/Skiftrapport'.$datum.'_'.$tid.'-'.$skift.'.pdf';

這些都將為您工作。 嘗試任何一個

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM