PHP輸出非HTML格式檔案總結

2021-08-31 09:11:27 字數 1850 閱讀 3553

在php系統開發中,除了顯示html外,偶爾也會遇到輸出檔案的問題,關於輸出檔案,主要是三類,1. 輸出磁碟中已有檔案 2. 輸出生成的檔案(如:csv pdf等) 3. 獲取生成檔案內容,做處理後輸出,現在我一一對三類輸出做一下總結。

1. 輸出磁碟中已有檔案

<?php 

$file = 'a.pdf';

if (file_exists($file))

?>

2. 輸出生成的檔案(如:csv pdf等)

<?php 

header('content-description: file transfer');

header('content-disposition: attachment; filename=a.csv');

header('content-transfer-encoding: binary');

header('expires: 0');

header('cache-control: must-revalidate, post-check=0, pre-check=0');

header('pragma: public');

ob_clean();

flush();

$rowarr=array(array('1','2','3'),array('1','2','3'));

$fp=fopen('php://output', 'w');

foreach($rowarr as $row)

fclose($fp);

exit;

?>

3. 獲取生成檔案內容,做處理後輸出

這個在實際中可能非常的少見了,獲取生成檔案的內容一般是先生成檔案,然後讀取,最後刪除,其實這個可以使用php://temp來做操作,以下仍以csv舉例

<?php 

header('content-description: file transfer');

header('content-disposition: attachment; filename=a.csv');

header('content-transfer-encoding: binary');

header('expires: 0');

header('cache-control: must-revalidate, post-check=0, pre-check=0');

header('pragma: public');

ob_clean();

flush();

$rowarr=array(array('1','2','中文'),array('1','2','3'));

$fp=fopen('php://temp', 'r+');

foreach($rowarr as $row)

rewind($fp);

$filecontent=stream_get_contents($fp);

fclose($fp);

//處理 $filecontent內容

$filecontent=iconv('utf-8','gbk',$filecontent);

echo $filecontent; //輸出

exit;

?>

關於php輸出非html格式檔案總結就到這裡,其實php中的input/output streams功能十分的強大,用好了,能夠簡化編碼,提高效率,有空不妨關注學習一下。

用php更改非php輸出內容

用php更改非php輸出內容.前幾天有個需求,就是將頁面輸出的內容進行過濾.進行網域名稱更換.比如本來將輸出的www.csdn.net image 上面的內容,現在遷移到了cdn上面,網域名稱更改為cdn.csdn.net image 再不更改模版的基礎上,直接將輸出進行修正.實現過程 1.將所有輸...

php的時間輸出格式

php中時間一般分為兩種格式,一種是標準時間格式timestamp,即y m d g i s。另一種就是時間戳。例如 一 標準時間與時間戳轉換 獲得服務端系統時間 date default timezone set prc nowtime date y m d g i s 標準時間轉為時間戳 dat...

php的時間輸出格式

php中時間一般分為兩種格式,一種是標準時間格式timestamp,即y m d g i s。另一種就是時間戳。例如 一 標準時間與時間戳轉換 獲得服務端系統時間 date default timezone set prc nowtime date y m d g i s 標準時間轉為時間戳 dat...