『壹』 php如何遍歷指定文件夾,獲取所有文件列表並生成下載鏈接
試編寫代碼如下:
<?php
$dir="D:/WWW/ftp";//指定的路徑
$sitepath='http://localhost/ftp/';
//遍歷文件夾下所有文件
if(false!=($handle=opendir($dir))){
echo"$dir目錄下的文件列表:<BR/>";
$i=0;
while(false!==($file=readdir($handle))){
if($file!="."&&$file!=".."&&!is_dir($dir.'/'.$file)){
echo'<ahref="'.$sitepath.$file.'">'.$file.'</a><br/>';
}
}
//關閉句柄
closedir($handle);
}
?>
代碼中需要提示的是:
如果是運行於互聯網上,需要考慮文件的訪問安全性。
運行截圖:
『貳』 如何實現php點擊時下載txt文件功能 詳細
php 點擊下載txt 文件 由於現在的瀏覽器已經可以識別格式為txt 的文檔格式,所以如果只是給txt 文檔做一 個文字鏈接的話,可能只是打開一個新窗口顯示txt 文件的內容,並不能實現點擊下載的目 的。We have to do something else. 當然這個問題的解決辦法也可以是你將你的txt 文件改名為瀏覽器不認識的文件,比如 rar,這樣的話點擊,瀏覽器不認識就只好讓用戶下載了。 下面這個文件就是通過設置header 設置文檔的格式來實現點擊下載的目的,將上個頁面傳 遞過來的文件點擊可以下載。 接著第二個header函數設置了要下載的文件,注意這里filename是不包含路徑的文件名, 所以用basename 過濾掉路徑名。這個 filename 的值將來就是點擊下載後彈出對話框裡面的 文件名,如果帶路徑的話,彈出對話框的文件名就是未知的,這個要注意,我就犯了這個錯 誤,後來憑 經驗自己改了,居然對了。 最後就是 readfile,將文件流輸出到瀏覽器,這樣就實現了 txt 文件的下載,其他類型的類似。
『叄』 在線生成txt php代碼
php如何利用header函數實現點擊特殊文件連接後提示下載保存解決方案
相信很多人在實現文件下載功能時會遇到這種情況,本意是點擊下載連接提示保存對話框,事情往往事與願違,例如TXT、圖像文件JPG、GIF、PDF等這樣的文件會直接在瀏覽器中打開文件內容,而不是提示保存。通過下面的方法可以解決這個問題。
<?php
if (sExport == "txt" ){
header("Content-Type: application/force-download");//關鍵之一,提示下載(如:header("Content-Type:text/html");可能直接打開?)
header("Content-Disposition: attachment; filename=".$TxtName);//實際的文件名
//include_once("XXX.php"); //php代碼(你把原來的php復制一份,去掉輸出html標簽)。
}
?>
//如果是xsl,word等則更簡單,只需直接在原來的php文件開頭加上下面幾句:
//(因為word能直接編輯html標簽)
<?php
if(sExport == "excel"){
header("ContentType = application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=".$oTitle.".xls");
}
if(sExport == "word"){
echo ("<div align='center'><font size=+2>收文登記簿</font><hr size=3 align='center' width=360></div><br>");
header("ContentType = application/vnd.ms-word");//或試試 application/msword
header("Content-Disposition: attachment; filename=".$oTitle.".doc");
}
if( sExport == "csv"){
header("ContentType = application/csv"); //圖像image/jpeg",或image/*"
header("Content-Disposition: attachment; filename=".$oTitle.".csv");
}
//.....輸出原來的php代碼
?>
『肆』 php正則提取字元串中的 圖片和超鏈接 保存為txt格式
php正則提取字元串中的圖片和超鏈接並保存為txt格式文件的程序如下:
此程序提取圖片和htm的超鏈接,並把它們存入1.txt文件.
<?php
$str="<td><tableborder=0cellpadding=0cellspacing=0><tr><tdalign=center>省略一些~~~~~~~~~~~~~~
~~~<tr><td><ahref=/news/2009-05-10/468487.htmtitle=撒旦發公司分公司大概使得法國target=_blank><img
src=/files/images/18079.jpgwidth=105height=121border=0></a></td></tr>省略一些~~~~~~~~~~~~~~~~~
</td></tr><tr><tdalign=centerheight=25><ahref=/news/2009-05-10/468487.htmtitle=撒旦發公司分公司大概使得法國
target=_blank>撒旦發公司分公司大概使得法國</a></td></tr></table></td><td>省略一些~~~~~~~~~~~~~~~~~
<td><ahref=/news/2009-05-09/898449.htmtitle=阿道夫三個地方華盛頓國會target=_blank><imgsrc=/files/images/18068.jpgwidth=105
height=121border=0></a></td></tr></table></td></tr><tr><tdalign=center
height=25><ahref=/news/2009-05-09/898449.htmtitle=阿道夫三個地方華盛頓國會target=_blank>阿道夫三個地方華盛頓國會</a></td></tr>
</table></td>";
preg_match_all("~<ahref=(.*?)s.+?(<imgsrc=(.*?)s.+?)?</a>~",$str,$matches);
$k=fopen("1.txt","a");
for($i=0;$i<count($matches[1]);$i++){
if($matches[3][$i]==""){
}else{
$s=$matches[1][$i]."&&&&&&&&&&".$matches[3][$i]." ";
fwrite($k,$s);
}
}
fclose($k);
?>
運行結果:
1.txt文件內容
/news/2009-05-10/468487.htm&&&&&&&&&&/files/images/18079.jpg
/news/2009-05-09/898449.htm&&&&&&&&&&/files/images/18068.jpg
『伍』 php實現文件下載代碼
簡單的文件下載只需要使用HTML的連接標記<a>,並將屬性href的URL值指定為下載的文件即可。所示:
<a href=」http://www.*****.net/download/book.rar」>下載文件</a>
如果通過上面的代碼實現文件下載,只能處理一些瀏覽器不能默認識別的MIME類型文件,例如當訪問book.rar文件時,瀏覽器並沒有直接打開,而是彈出一個下載提示框,提示用戶「下載」還是「打開」等處理方式。但如果需要下載後綴名為.html的網頁文件、圖片文件及PHP程序腳本文件等,使用這種連接形式,則會將文件內容直接輸出到瀏覽器中,並不會提示用戶下載。
為了提高文件的安全性,不希望在<a>標簽中給出文件的鏈接,則必須向瀏覽器發送必要的頭信息,以通知瀏覽器將要進行下載文件的處理。PHP使用header()函數發送網頁的頭部信息給瀏覽器,該函數接收一個頭信息的字元串作為參數。文件下載需要發送的頭信息包括以下三部分,通過調用三次header()函數完成。以下載圖片test.gif為例,需要發送的頭信息的所示:
header(『Content-Type:imge/gif'); //發送指定文件MIME類型的頭信息
header(『Content-Disposition:attachment; filename=」test.gif」『); //發送描述文件的頭信息,附件和文件名
header(『Content-Length:3390′); //發送指定文件大小的信息,單位位元組
如果使用header()函數向瀏覽器發送了這三行頭信息,圖片test.gif就不會直接在瀏覽器中顯示,而讓瀏覽器將該文件形成下載的形式。在函數header()中,「Content-Type」指定了文件的MIME類型,「Content_Disposition」用於文件的描述,值「attachment;
filename=」test.gif」」說明這是一個附件,並且指定了下載後的文件名,「Content_Length」則給出了被下載文件的大小。
設置完頭部信息以後,需要將文件的內容輸出到瀏覽器,以便進行下載。可以使用PHP中的文件系統函數將文件內容讀取出來後,直接輸出給瀏覽器。最方便的是使用readfile()函數,將文件內容讀取出來直接輸出。下載文件test.gif的所示:
<?php
$filename = "test.gif";
header('Content-Type:image/gif'); //指定下載文件類型
header('Content-Disposition: attachment; filename="'.$filename.'"'); //指定下載文件的描述
header('Content-Length:'.filesize($filename)); //指定下載文件的大小
//將文件內容讀取出來並直接輸出,以便下載
readfile($filename);
?>
上面如果碰到中文名字就會無法正常下載了,對於中文名字下載文件我又找到一個文件下載實例代碼
<?php
header("Content-type:text/html;charset=utf-8");
// $file_name="cookie.jpg";
$file_name="聖誕狂歡.jpg";
//用以解決中文不能顯示出來的問題
$file_name=iconv("utf-8","gb2312",$file_name);
$file_sub_path=$_SERVER['DOCUMENT_ROOT']."marcofly/phpstudy/down/down/";
$file_path=$file_sub_path.$file_name;
//首先要判斷給定的文件存在與否
if(!file_exists($file_path)){
echo "沒有該文件文件";
return ;
}
$fp=fopen($file_path,"r");
$file_size=filesize($file_path);
//下載文件需要用到的頭
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length:".$file_size);
Header("Content-Disposition: attachment; filename=".$file_name);
$buffer=1024;
$file_count=0;
//向瀏覽器返回數據
while(!feof($fp) && $file_count<$file_size){
$file_con=fread($fp,$buffer);
$file_count+=$buffer;
echo $file_con;
}
fclose($fp);
?>
header("Content-type:text/html;charset=utf-8")的作用:在伺服器響應瀏覽器的請求時,告訴瀏覽器以編碼格式為UTF-8的編碼顯示該內容
關於file_exists()函數不支持中文路徑的問題:因為php函數比較早,不支持中文,所以如果被下載的文件名是中文的話,需要對其進行字元編碼轉換,否則file_exists()函數不能識別,可以使用iconv()函數進行編碼轉換
$file_sub_path() 我使用的是絕對路徑,執行效率要比相對路徑高
Header("Content-type: application/octet-stream")的作用:通過這句代碼客戶端瀏覽器就能知道服務端返回的文件形式
Header("Accept-Ranges: bytes")的作用:告訴客戶端瀏覽器返回的文件大小是按照位元組進行計算的
Header("Accept-Length:".$file_size)的作用:告訴瀏覽器返回的文件大小
Header("Content-Disposition: attachment; filename=".$file_name)的作用:告訴瀏覽器返回的文件的名稱
以上四個Header()是必需的
fclose($fp)可以把緩沖區內最後剩餘的數據輸出到磁碟文件中,並釋放文件指針和有關的緩沖區
『陸』 php按行提取txt文件的網址 怎麼加上超鏈接
$a=file('網址.txt');
foreach($a as $url){
echo '<a href="'.$url.'">'.$url.'<a>';
}
『柒』 php怎麼將數據寫入指定url的txt中,然後並返回保存地址提供下載
<?php
$content=$_POST['text1'];
$file_name='lx_arr_str.txt';
$fp=fopen($file_name,"w");
fwrite($fp,$content);//寫入數據文件
fclose($fp);
$url=$_SERVER['HTTP_HOST'].$file_name;
echo"<ahref=".$url.">點擊下載</a>";
『捌』 php實現下載txt文件,header到底怎麼寫,網上的所有方法都試過了,有沒有實現的,我用的360瀏覽器
$str = 'txt內容';
$filename = '文檔名稱';
header("Content-type: text/plain");
header("Accept-Ranges: bytes");
header("Content-Disposition: attachment; filename=".$filename);
header("Cache-Control: must-revalidate, post-check=0, pre-check=0" );
header("Pragma: no-cache" );
header("Expires: 0" );
exit($str);
『玖』 PHP生成TXT文件
把這頁保存起來,比如http://localhost/a.php
然後再另外一頁寫
<?php
$content = file_get_contents("http://localhost/a.php");//得到文件執行的結果
$of = fopen('dir.txt','w');//創建並打開dir.txt
if($of){
fwrite($of,$content);//把執行文件的結果寫入txt文件
}
fclose($of);
?>
『拾』 如何使用PHP生成TXT文檔並讀取,求源碼
生成鏈接時加入file_put_contents('A/'.$_GET['id'].'.txt','0');
訪問B站時加上
$count=(int)file_get_contents('A/'.$_GET['id'].'.txt');
$count++;
file_put_contents('A/'.$_GET['id'].'.txt',$count);
其它的數據有效性驗證,B的許可權自己加上判斷擴展吧