作者dinos (守护神)
看板PHP
标题Re: [请益] 将一个有行号的php档去行号
时间Sat Jun 28 18:44:22 2008
※ 引述《Geniusking (真理斯金)》之铭言:
: 假设我原始的档案如下,有行号。
: 1. <?php
: 2. header('content-type: text/html; charset=big5');
: 3. ?>
: 我写一个php程式可以把这个档案上传到server的空间
: 然後用fopen开这个档把他的行号用str_replace去掉
: 但我不知道怎麽直接写到原本开的档,这时已经读到第2行了
: 所以我写入的话会写到第2行(?)
: 虽然我开新档写入可以达到我要的,上传後要去行号程式码如下
: 可是这样就变成有两个档案,除非删掉原本的
: 有办法直接上传一个有行号的php档然後单单对这个档去行号吗?(不开新档)
if(!empty($_FILES['UpFile']['name'])){
file_put_contents($upload_dir . $_FILES['UpFile']['name'],
trim(preg_replace('/^1\./','',
preg_replace('/[\r\n]+\s*\d+\./',"\n",
file_get_contents($_FILES['UpFile']['tmp_name'])
)
))
);
}
: <?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'],
: }
: 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: 140.113.158.15
1F:推 Geniusking :厉害,感谢! 06/28 21:54
2F:→ Geniusking :不过trim好像只有消除掉第一行的头尾空白 06/28 22:00