用php怎么写自动生成html的新闻系统? 没有用PHP写过类似程序,对PHP也不是怎么熟但是既然,ASP可能用FSO生成html的文件,PHP肯定也有相关的文件操作函数用来写文件,这样就可以了啊 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可惜php中没有createfile()类似的函数,我以前还看下载过一个这样的程序,现在怎么也找不到了,有一个tmpfile()创建临时文件,不知道能不能派上用场? 大型网站的新闻系统的文件名一般是2002123011.shtml等,这些都是由程序从模板自动生成的吧,很多asp的新闻能做到这一点,不知道用php怎么做? 主要要用到文件的行更新(文件不存在自动创建),行删除,行插入(文件不存在自动创建)我前一阵自己编了几个这样的函数,明天发给你(现在我在网吧,我们学校寝室里没有网线)。缺点是只能按行号定位指定行。你要是想生成html,也可以不用那几个函数,可以直接用fputs,我也有代码,改天一块给你。别急啊! 非常感谢!这是我的email:[email protected] www.feyge.com请大家去看看是不是类似那样的,看栏目下的文章的路径。 to:feyge(菲戈) 你得网站做得非常好,很是佩服!能否告诉一下你的文章系统生成静态页面的思路吗? $fp=fopen("index.tmp","w");fputs($fp,"$msg");fclose($fp);copy("index.tmp","index.html");unlink("index.html"); 如果你只是想创建一个文件,用w_baggio的方法就可以了。但是通常情况下,我们需要对建立的文件进行局部操作,例如我建立的top系统。所就要用到我编写的下面几个函数不用我解释了吧,你应该能明白的。其中lineup函数也可以用来删除,只要将更新想换成""(空串)我就先不给注释了,需要我在加<?phpfunction lineins($file,$line,$line_no){ $line_no=$line_no-1; $upstr=""; $buffer=file($file); if ($line_no<0 || $line_no>count($buffer)) return False; $line_end=(eregi("\\\r\\\n",$buffer[0]))?"\r\n":"\n"; if ($line != "") $buffer[$line_no]=$line.$line_end.$buffer[$line_no]; else $buffer[$line_no]=""; $upstr=str_replace($line_end,"\n",implode("",$buffer)); $fp=@fopen($file,"w+"); if(!$fp) return False; fputs($fp,$upstr); fclose($fp); return True; }function lineup($file,$line,$line_no){ $line_no=$line_no-1; $upstr=""; $buffer=file($file); if ($line_no<0 || $line_no>count($buffer)) return False; $line_end=(eregi("\\\r\\\n",$buffer[0]))?"\r\n":"\n"; if ($line != "") $buffer[$line_no]=$line.$line_end; else $buffer[$line_no]=""; $upstr=str_replace($line_end,"\n",implode("",$buffer)); $fp=@fopen($file,"w+"); if(!$fp) return False; fputs($fp,$upstr); fclose($fp); return True; } function linedel($file,$line_no){ $line_no=$line_no-1; $upstr=""; $buffer=file($file); if ($line_no<0 || $line_no>count($buffer)) return False; $line_end=(eregi("\\\r\\\n",$buffer[0]))?"\r\n":"\n"; $buffer[$line_no]=""; $upstr=str_replace($line_end,"\n",implode("",$buffer)); $fp=@fopen($file,"w+"); if(!$fp) return False; fputs($fp,$upstr); fclose($fp); return True; } ?>几点说明:1,这个程序只适合编辑文本文件(txt html xml php asp jsp ...)2,我没有写指定字符串的替换,因为在实际使用中,用处不大,由于文本文件的每一行都不是很长,直接换行要比换串更优3,\r\n被替换成\n,不换的结果自己试试就知道了。4,我假设你欲更改的文件已经存在,所以没做不存在的处理。(这么多天才发,希望没耽误你!呵呵!) $file ,待编辑文件(字符串)$line_on要编辑的行号(整数)$line要插入/更改的内容(字符串) 非常感谢各位!我已经做了不少实验,关键是我一开始没想到用copy()函数,比如copy(index.tpl,"2003010601.html")生成目标文件,然后使用fins提供的函数对目标文件进行操作能够实现我的想法。 求PHP 网站获取客户端MAC地址的方案 使用PDO方式修改数据库的问题。 急用!!如何比较数据库中的两个表中 的内容,删除相同的数据,保留不一样的数据 $_SERVER['PHP_SELF']请问这一句是什么意思?在这一整句中起什么作用? 各位大哥进来帮忙,谢谢 怎么取得中间一部份的值呢?高难度。快进来看看吧 问个PHP地址的问题~~~~~ 请教php在2000下的配置,我用的是iis php中怎样控制打印 关于mysql_db_query函数的返回值!!! 如何在apache中设置mysql的自动启动? PHP4.30大讨论
行更新(文件不存在自动创建),行删除,行插入(文件不存在自动创建)我前一阵自己编了几个这样的函数,明天发给你(现在我在网吧,我们学校寝室里没有网线)。缺点是只能按行号定位指定行。
你要是想生成html,也可以不用那几个函数,可以直接用fputs,我也有代码,改天一块给你。别急啊!
这是我的email:[email protected]
你得网站做得非常好,很是佩服!
能否告诉一下你的文章系统生成静态页面的思路吗?
fputs($fp,"$msg");
fclose($fp);
copy("index.tmp","index.html");
unlink("index.html");
但是通常情况下,我们需要对建立的文件进行局部操作,例如我建立的top系统
。所就要用到我编写的下面几个函数
不用我解释了吧,你应该能明白的。
其中lineup函数也可以用来删除,只要将更新想换成""(空串)
我就先不给注释了,需要我在加
<?php
function lineins($file,$line,$line_no)
{
$line_no=$line_no-1;
$upstr="";
$buffer=file($file);
if ($line_no<0 || $line_no>count($buffer)) return False;
$line_end=(eregi("\\\r\\\n",$buffer[0]))?"\r\n":"\n";
if ($line != "") $buffer[$line_no]=$line.$line_end.$buffer[$line_no];
else $buffer[$line_no]="";
$upstr=str_replace($line_end,"\n",implode("",$buffer));
$fp=@fopen($file,"w+");
if(!$fp) return False;
fputs($fp,$upstr);
fclose($fp);
return True;
}
function lineup($file,$line,$line_no)
{
$line_no=$line_no-1;
$upstr="";
$buffer=file($file);
if ($line_no<0 || $line_no>count($buffer)) return False;
$line_end=(eregi("\\\r\\\n",$buffer[0]))?"\r\n":"\n";
if ($line != "") $buffer[$line_no]=$line.$line_end;
else $buffer[$line_no]="";
$upstr=str_replace($line_end,"\n",implode("",$buffer));
$fp=@fopen($file,"w+");
if(!$fp) return False;
fputs($fp,$upstr);
fclose($fp);
return True;
} function linedel($file,$line_no)
{
$line_no=$line_no-1;
$upstr="";
$buffer=file($file);
if ($line_no<0 || $line_no>count($buffer)) return False;
$line_end=(eregi("\\\r\\\n",$buffer[0]))?"\r\n":"\n";
$buffer[$line_no]="";
$upstr=str_replace($line_end,"\n",implode("",$buffer));
$fp=@fopen($file,"w+");
if(!$fp) return False;
fputs($fp,$upstr);
fclose($fp);
return True;
} ?>几点说明:
1,这个程序只适合编辑文本文件(txt html xml php asp jsp ...)
2,我没有写指定字符串的替换,因为在实际使用中,用处不大,由于文本文件的每一行都不是很长,直接换行要比换串更优
3,\r\n被替换成\n,不换的结果自己试试就知道了。
4,我假设你欲更改的文件已经存在,所以没做不存在的处理。(这么多天才发,希望没耽误你!呵呵!)
$line_on要编辑的行号(整数)
$line要插入/更改的内容(字符串)
我已经做了不少实验,关键是我一开始没想到用copy()函数,比如copy(index.tpl,"2003010601.html")生成目标文件,然后使用fins提供的函数对目标文件进行操作能够实现我的想法。