2014-02-19 93 views
0

第一个目标:建立一个index.html文件,并创建一个链接来下载生成的文件生成html文件,并用PHP下载

这里的问题是,当我点击生成新的文件下载的文件总是相同的,心不是更新

变量$content具有INSITE与<headers><aside> and <sections>

整个HTML页面,我有以下代码

if(empty($error)){ 
     echo "<h3>File generated</h3>"; 
     $my_file = 'index.html'; 
     if (file_exists($my_file)) { 
      if(unlink($my_file)){ 
      }; 
      $new_file = 'index.html'; 
      $handle = fopen($new_file, 'w') or die('Cannot open file: '.$new_file); 
      $data = $content; 
      fwrite($handle, $data); 
      fclose($handle); 

      echo "<a download='index.html' href='index.html'><b class='download'>Download</b></a>"; 
     } else { 
      $new_file = 'index.html'; 
      $handle = fopen($new_file, 'w') or die('Cannot open file: '.$new_file); 
      $data = $content; 
      fwrite($handle, $data); 
      fclose($handle); 
      echo "<a download='index.html' href='index.html'><b class='download'>Download</b></a>"; 
     } 
+0

您是否有权写入该文件? – MSadura

+0

是的,该文件已创建,但是当我生成新文件并单击下载时,下载的文件是第一个创建的。如果我检查服务器上新文件的内容,它已更新。 –

+1

如果你手动删除文件,然后尝试下载文件,你会得到错误或仍然可以下载它? – MSadura

回答

0

嗨,我认为这将是工作,如果变量$内容将包含正确的数据,并且您有权限读取,更新,创建文件。在代码中,我使用的减少你的代码

if(empty($error)){ 
    echo "<h3>File generated</h3>"; 
    $my_file = 'index.html'; 
    file_put_contents($my_file, $content); 
    echo "<a download='index.html' href='index.html'><b class='download'>Download</b></a>"; 
} 

UPDATE file_put_contents功能: 你确定你已经正确生成内容和$内容总是包含不同的价值?

+0

是,我在服务器上检查了manualy文件,并且allways包含不同的值 –

+0

如果您没有看到更改,您可以手动将某些内容添加到文件index.html并查看浏览器上的更改,也许您错误的文件或URL – Jack