繁体   English   中英

写完后在新浏览器窗口中打开文件(使用fopen)

[英]Open a file in a new browser window after having written it (with fopen)

我正在编写一个简单的订单系统,其中使用fopen函数将多个数字(填写在表单中)写入另一个.php文件(也可能是.html)。 这工作正常,但在写入文件后,我希望浏览器实际打开该写入的文件,最好是在新的浏览器窗口中。 这样我的客户可以使用它来打印,用作发票等。

现在我仍然是一个基于php的新手,并且没有使用fopen经验。 但是在我寻找教程等的地方,据说fopen打开(或写当然)一个文件,但它并没有我所经历过的。 它似乎只允许访问指定的文件进行写入和读取,而不是实际显示新写入的页面。

为了避免混淆:我不想在SO状态下像其他问题那样打开链接。

我的代码:

<form action="" method="post">
  <input type="text" id="amountTuna" name="numberTuna" value="0"/>
  <input type="text" id="amountCheese" name="numberCheese" value="0"/>
  <input name="send" id="send" type="submit" value="Post order" />
</form>

<?php
if (array_key_exists('send', $_POST)) { 
  $order = "order.php";
  $fh = fopen($order, 'w') or die("can't open file");//file handler

  fwrite($fh, "Tuna sandwiches: " . stripslashes($_POST['numberTuna']));
  fwrite($fh, "Cheese sandwiches: " . stripslashes($_POST['numberCheese']));

  $fh = fopen($factuur, 'r');
  $fileip = fread($fh, filesize($factuur));
  fclose($fh);
}
?>

尝试不同的fopen参数,如'w''r''r+'等似乎没有任何区别。 删除fclose($fh)似乎也没有任何区别。

使用JS脚本打开新窗口。 例如,在fclose($fh)

echo "<script>window.open($order, '_blank'); window.focus();</script>";

将事物存储在数据库中可能会容易得多。

也就是说,使用fopen是打开文件本身,在新的浏览器窗口中打开写入的文件将需要一些客户端脚本(即Javascript)来加载新创建的文件。

Google Javascript window.open()。

汤姆

既然你只想写一个可打印的页面..你试过file_put_contents吗?

if (isset($_POST['send'])) {
    $file = "test.html";
    $data = "Tuna sandwiches: " . stripslashes($_POST['numberTuna']) . "<br>";
    $data .= "Cheese sandwiches: " . stripslashes($_POST['numberCheese']) . "<br>";
    touch($file);
    file_put_contents($file, $data);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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