[請益] 將一個有行號的php檔去行號
假設我原始的檔案如下,有行號。
1. <?php
2. header('content-type: text/html; charset=big5');
3. ?>
我寫一個php程式可以把這個檔案上傳到server的空間
然後用fopen開這個檔把他的行號用str_replace去掉
但我不知道怎麼直接寫到原本開的檔,這時已經讀到第2行了
所以我寫入的話會寫到第2行(?)
雖然我開新檔寫入可以達到我要的,上傳後要去行號程式碼如下
可是這樣就變成有兩個檔案,除非刪掉原本的
有辦法直接上傳一個有行號的php檔然後單單對這個檔去行號嗎?(不開新檔)
<?php
header("content-type:text/html;charset=big5");
$upload_dir='./tempfile/';
if( $_FILES['UpFile']['error'] == UPLOAD_ERR_OK ) {
//將暫存檔搬移到上傳目錄下, 並且改回原始檔名
move_uploaded_file($_FILES['UpFile']['tmp_name'],
$upload_dir . $_FILES['UpFile']['name']);
}
else{
echo "上傳失敗";
}
if( ! @$fh=fopen( $upload_dir . $_FILES['UpFile']['name'] ,"r+") ){
die('無法開啟檔案');
}
//$i 變數用來計算並存放行號
$i=1;
$new=fopen($upload_dir . "new.php", "w");
//用 while 迴圈逐行讀取檔案
while( $str=fgets($fh) ){
$tmp = $i."."; //找$tmp=1. , 2. , 3. ...etc
$str = str_replace( $tmp , "", $str); //去行號
fputs( $new, $str );//寫入新檔
$i=$i+1; //行號加 1, 作為下一次使用的行號
}
//關閉檔案
fclose($fh);
fclose($new);
?>
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.110.128.33
※ 編輯: Geniusking 來自: 123.110.128.33 (06/28 22:05)
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 4 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章