Php 是否撤消内容处置并将内容输出到服务器上的文件?

Php 是否撤消内容处置并将内容输出到服务器上的文件?,php,file-io,truetype,Php,File Io,Truetype,以下代码是源代码,取自DOMPDF库:FontLib。它可以处理.ttf字体的子设置,我一直在尝试使这段代码适应我的基本需求,不幸的是,我无法让代码按我想要的方式运行。。我有以下问题可以帮助我继续 如何编辑这段代码,使其不会强制下载,而是将其保存到服务器 我尝试了以下方法来禁用强制下载 禁用标题内容处置不会完全禁用其操作,它将触发一个新的下载,实际内容为二进制代码,为什么这样做?也许函数readfile()与这个问题有关,据我所知,它会将内容输出到输出缓冲区并显示出来。我如何防止这样做,并将其与

以下代码是源代码,取自DOMPDF库:FontLib。它可以处理.ttf字体的子设置,我一直在尝试使这段代码适应我的基本需求,不幸的是,我无法让代码按我想要的方式运行。。我有以下问题可以帮助我继续

如何编辑这段代码,使其不会强制下载,而是将其保存到服务器

我尝试了以下方法来禁用强制下载

禁用标题内容处置不会完全禁用其操作,它将触发一个新的下载,实际内容为二进制代码,为什么这样做?也许函数readfile()与这个问题有关,据我所知,它会将内容输出到输出缓冲区并显示出来。我如何防止这样做,并将其与file_put_contents()一起存储


你应该注意以下几点:

-读取文件并将其写入输出缓冲区。 -用于删除文件

上面的代码正在创建一个临时文件,使用readline函数将该文件的内容发送到输出缓冲区,然后在整个文件被缓冲后立即删除该文件。如果不想为文件提供服务器,请删除对header、readline和unlink的调用。所需文件的路径已存储在$tmp变量中,因此可以根据需要对其进行操作

if (isset($_POST["subset"])) {  
  $subset = $_POST["subset"];  

  ob_start();

  require_once "../src/FontLib/Autoloader.php";

  $font = Font::load($fontfile);  
  $font->parse();

  $font->setSubset($subset);  
  $font->reduce();

  $new_filename = basename($fontfile);  
  $dot = strpos($new_filename, ".");  
  $new_filename = substr($new_filename, 0, $dot)."-subset".substr($new_filename, $dot);

  header("Content-Type: font/truetype");  
  header("Content-Disposition: attachment; filename=\"$new_filename\"");

  $tmp = tempnam(sys_get_temp_dir(), "fnt");  
  $font->open($tmp, Binary_Stream::modeWrite);  
  $font->encode(array("OS/2"));  
  $font->close();

  ob_end_clean();

  readfile($tmp);  
  unlink($tmp);

  return;
}