php 动态页面生成静态页面 函数(实用)
时间:2010-01-15
来源:互联网
function createhtm($fromurl,$filename,$id){//创建静态页面
global $db;
$content = file_get_contents( $fromurl);
$handle = fopen ($filename,"w");
if (!is_writable ($filename)){
echo "<font color='#FF9900'>不能生成 :".$filename."因为文件不存在或不可写</font><br>";
}
if (!fwrite ($handle,$content)){
echo "<font color='#FF0000'>生成文件".$filename."失败</font><br>";
}
fclose ($handle);
//echo "<font color='#00CC00'>生成文件".$filename."成功</font><br>";
if(file_exists($filename) && $id){
$query = "update news set cn_htmurl='$filename' where id='$id' ";//把生成的静态地址写在数据库里
$db->query($query);
}
}
/*静态内容*/
function contenthtm($folder2,$phpfilename,$class22,$id,$cn_ipage,$en_ipage,$updatetime){ //获得动态网址和对应的静态页面名称
//$phpfilename 默认文件夹名称 对应前台动态相应文件例如news.php
//$folder2 所在文件夹名称 例如前台news文件夹
//$class22 分类id
//$id 文章id
//$updatetime 时间
global $webhtm,$weburl,$htmtype,$htmpre_e,$htmpagename,$m_now_time,$en_lang_ok,$cn_lang_ok,$db;
if($webhtm!=0){
if($updatetime!=""){
$updatetime = date('Ymd',strtotime($updatetime));
}
else{
$updatetime = date('Ymd',$m_now_time);
}
if($htmpagename==2){
$folder=$db->get_one("select * from class_name where id='$class22'");
$foldername=$folder[foldername];
}
$foldername2="../../".$folder2.'/'.date('Ym').'/';
if (!file_exists($foldername2)) {
if (!make_dir($foldername2)) {
echo "创建年月文件夹失败";
}
}
switch($htmpagename){
case 0; $pagename=$phpfilename.$id; break;
case 1; $pagename=$updatetime.$id; break;
case 2; $pagename=$foldername.$id; break;
}
if($cn_lang_ok==1){
if($cn_ipage){//长文章分页数
for($i=1;$i<=$cn_ipage;$i++){
$fromurl=$weburl.$folder2."/".$phpfilename.".php?id=".$id."&ipage=".$i;
$filename=$foldername2.$pagename."_".$i.".".$htmtype;
if($i==1){
createhtm($fromurl,$filename,$id);
}
else{
createhtm($fromurl,$filename);
}
}
}
else{
$fromurl=$weburl.$folder2."/".$phpfilename.".php?id=".$id;
$filename=$foldername2.$pagename.".".$htmtype;
createhtm($fromurl,$filename,$id);
}
}
}
}
function make_dir($folder) {//创建文件夹
$reval = false;
if (!file_exists($folder)) {
@umask(0);
preg_match_all('/([^\/]*)\/?/i', $folder, $atmp);
$base = ($atmp[0][0] == '/') ? '/' : '';
foreach($atmp[1]AS $val) {
if ('' != $val) {
$base .= $val;
if ('..' == $val || '.' == $val) {
$base .= '/';
continue;
}
} else {
continue;
}
$base .= '/';
if (!file_exists($base)) {
if (@mkdir($base, 0777)) {
@chmod($base, 0777);
$reval = true;
}
}
}
} else {
$reval = is_dir($folder);
}
clearstatcache();
return $reval;
}
主要的函数就是这些,我做的系统就是用这几个函数的,希望对需求的人 要帮助,有不好的地方请高手指教!!!
global $db;
$content = file_get_contents( $fromurl);
$handle = fopen ($filename,"w");
if (!is_writable ($filename)){
echo "<font color='#FF9900'>不能生成 :".$filename."因为文件不存在或不可写</font><br>";
}
if (!fwrite ($handle,$content)){
echo "<font color='#FF0000'>生成文件".$filename."失败</font><br>";
}
fclose ($handle);
//echo "<font color='#00CC00'>生成文件".$filename."成功</font><br>";
if(file_exists($filename) && $id){
$query = "update news set cn_htmurl='$filename' where id='$id' ";//把生成的静态地址写在数据库里
$db->query($query);
}
}
/*静态内容*/
function contenthtm($folder2,$phpfilename,$class22,$id,$cn_ipage,$en_ipage,$updatetime){ //获得动态网址和对应的静态页面名称
//$phpfilename 默认文件夹名称 对应前台动态相应文件例如news.php
//$folder2 所在文件夹名称 例如前台news文件夹
//$class22 分类id
//$id 文章id
//$updatetime 时间
global $webhtm,$weburl,$htmtype,$htmpre_e,$htmpagename,$m_now_time,$en_lang_ok,$cn_lang_ok,$db;
if($webhtm!=0){
if($updatetime!=""){
$updatetime = date('Ymd',strtotime($updatetime));
}
else{
$updatetime = date('Ymd',$m_now_time);
}
if($htmpagename==2){
$folder=$db->get_one("select * from class_name where id='$class22'");
$foldername=$folder[foldername];
}
$foldername2="../../".$folder2.'/'.date('Ym').'/';
if (!file_exists($foldername2)) {
if (!make_dir($foldername2)) {
echo "创建年月文件夹失败";
}
}
switch($htmpagename){
case 0; $pagename=$phpfilename.$id; break;
case 1; $pagename=$updatetime.$id; break;
case 2; $pagename=$foldername.$id; break;
}
if($cn_lang_ok==1){
if($cn_ipage){//长文章分页数
for($i=1;$i<=$cn_ipage;$i++){
$fromurl=$weburl.$folder2."/".$phpfilename.".php?id=".$id."&ipage=".$i;
$filename=$foldername2.$pagename."_".$i.".".$htmtype;
if($i==1){
createhtm($fromurl,$filename,$id);
}
else{
createhtm($fromurl,$filename);
}
}
}
else{
$fromurl=$weburl.$folder2."/".$phpfilename.".php?id=".$id;
$filename=$foldername2.$pagename.".".$htmtype;
createhtm($fromurl,$filename,$id);
}
}
}
}
function make_dir($folder) {//创建文件夹
$reval = false;
if (!file_exists($folder)) {
@umask(0);
preg_match_all('/([^\/]*)\/?/i', $folder, $atmp);
$base = ($atmp[0][0] == '/') ? '/' : '';
foreach($atmp[1]AS $val) {
if ('' != $val) {
$base .= $val;
if ('..' == $val || '.' == $val) {
$base .= '/';
continue;
}
} else {
continue;
}
$base .= '/';
if (!file_exists($base)) {
if (@mkdir($base, 0777)) {
@chmod($base, 0777);
$reval = true;
}
}
}
} else {
$reval = is_dir($folder);
}
clearstatcache();
return $reval;
}
主要的函数就是这些,我做的系统就是用这几个函数的,希望对需求的人 要帮助,有不好的地方请高手指教!!!
作者: yjxommm2005 发布时间: 2010-01-15
先表示感谢,你开发个系统多长时间?
作者: hina 发布时间: 2010-01-15
谢谢楼主分享
作者: shuangyinlz 发布时间: 2010-01-15
大哥函数倒是不错 遗憾的是参数没有说明啊!
作者: llliaowwwei 发布时间: 2010-01-18
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28