⑴ php讀取/生成word文檔
你可以用header()頭文件來完成
我弄過xls,沒有弄過doc
很快的
⑵ 在PHP 中用readfile函數讀取doc文件時顯示的是亂碼
Doc文件當然是亂碼啊。你用記事本打開doc文件就是亂碼。doc文件被word編碼過了的,不可能簡單的就能直讀。
如果想讀自己預設的doc或者用php生成別人能用word打開看的doc文件很簡單。因為doc可以直接寫成html格式
但如果你想用PHP讀別人用word保存的文件,在windows下必須用到php的COM組件word.application。並且伺服器安裝了word程序。這段程序網上很多,我就不再復制了。
如果是linux伺服器的話,方法五花八門,可以找第三方開發的程序比如catword,antiword,裝了openoffice也可以用它的組件
⑶ php如何讀取文本指定的內容
php讀取文件內容:
-----第一種方法-----fread()--------
<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str = fread($fp,filesize($file_path));//指定讀取大小,這里把整個文件內容讀取出來
echo $str = str_replace("\r\n","<br />",$str);
}
?>
--------第二種方法------------
<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$str = file_get_contents($file_path);//將整個文件內容讀入到一個字元串中
$str = str_replace("\r\n","<br />",$str);
echo $str;
}
?>
-----第三種方法------------
<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str = "";
$buffer = 1024;//每次讀取 1024 位元組
while(!feof($fp)){//循環讀取,直至讀取完整個文件
$str .= fread($fp,$buffer);
}
$str = str_replace("\r\n","<br />",$str);
echo $str;
}
?>
-------第四種方法--------------
<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$file_arr = file($file_path);
for($i=0;$i<count($file_arr);$i++){//逐行讀取文件內容
echo $file_arr[$i]."<br />";
}
/*
foreach($file_arr as $value){
echo $value."<br />";
}*/
}
?>
----第五種方法--------------------
<?php
$file_path = "test.txt";
if(file_exists($file_path)){
$fp = fopen($file_path,"r");
$str ="";
while(!feof($fp)){
$str .= fgets($fp);//逐行讀取。如果fgets不寫length參數,默認是讀取1k。
}
$str = str_replace("\r\n","<br />",$str);
echo $str;
}
?>
⑷ 用php 讀取word 文檔內容 比如:word文檔為試題等等
這個是通過調用com組件的方式操作word的
<?
// 建立一個指向新COM組件的索引
$word = new COM("word.application") or die("Can't start Word!");
// 顯示目前正在使用的Word的版本號
//echo 「Loading Word, v. {$word->Version}<br>」;
// 把它的可見性設置為0(假),如果要使它在最前端打開,使用1(真)
// to open the application in the forefront, use 1 (true)
//$word->Visible = 0;
//打?一個文檔
$word->Documents->OPen("d:\myweb\muban.doc");
//讀取文檔內容
$test= $word->ActiveDocument->content->Text;
echo $test;
echo "<br>";
//將文檔中需要換的變數更換一下
$test=str_replace("<{變數}>","這是變數",$test);
echo $test;
$word->Documents->Add();
// 在新文檔中添加文字
$word->Selection->TypeText("$test");
//把文檔保存在目錄中
$word->Documents[1]->SaveAs("d:/myweb/comtest.doc");
// 關閉與COM組件之間的連接
$word->Quit();
?>
⑸ PHP怎樣讀取word文檔實現在線預覽,並且不受操作系統的限制,利用COM組件的話太受限了
你可以嘗試一下PHPWord,用它可以把任意word文件轉換為html網頁,這樣任何人都可以在瀏覽器里查看你的word文件了。
PHPWord
盡管目前只是測試版但是功能還是很強勁!完美兼容MF Word並且支持打開.doc or.docx。可以插入文本,文本符,分頁,頁眉/頁腳,表格,列表中的元素,超鏈接等等。
地址:http://phpword.codeplex.com
⑹ PHP如何讀出當前目錄下所有文件
一般來說php中讀取目錄下的文件名的方式確實不少,最簡單的是scandir,具體代碼如下:
復制代碼 代碼如下:$dir="./caxa/";
$file=scandir($dir);
print_r($file);
稍微復雜點的,來自於php手冊:
復制代碼 代碼如下:$dir = "/etc/php5/";
// Open a known directory, and proceed to read its contents
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";
} closedir($dh);
}
}
這些都只能讀取當前指定目錄下的文件,對子目錄中的文件則無法讀取。原來自己寫過一個循環刪除所有目錄的一段代碼,需要逐個子目錄刪除所有文件,包括多層。但是只需要讀出文件名,稍微復雜點,網上找到一個能用,原始代碼有錯誤提示,改了一下引用&$data的地方,如下所示:
復制代碼 代碼如下:function searchDir($path,&$data){
if(is_dir($path)){
$dp=dir($path);
while($file=$dp->read()){
if($file!='.'&& $file!='..'){
searchDir($path.'/'.$file,$data);
}
}
$dp->close();
}
if(is_file($path)){
$data[]=$path;
}
}
function getDir($dir){
$data=array();
searchDir($dir,$data);
return $data;
}
print_r(getDir('.'));
希望本文所述對大家的PHP程序設計有所幫助。