php2html php生成静态页函数

本文介绍了一种使用PHP从动态URL生成静态HTML文件的方法,并详细解释了如何通过递归创建必要的目录结构,确保生成的静态文件可以正确存放及访问。此外,还提供了错误处理机制,如检查文件可写性等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

生成静态函数 这里要用到的路径为服务器绝对路径; 若给定的路径目录不存在则自动创建!
/** 
------------------------ 
Function: php2html($in_Url, $out_htmlFile, $out_logFile) 
------------------------ 
@ Description: 生成静态函数 
@ Copyright: Copyright (c) 2006 - 2011 
@ Create: 2006-08-01 
@ Modify: 2006-10-27 
@ 提示:这里要用到的路径为服务器绝对路径; 若给定的路径目录不存在则自动创建 
======================================================================================= 
@ Example:php2html("http://www.jbxue.com", "/www/html/index.html", "/www/log/log.txt"); 
*/ 
// {{{ contents 
function php2html($in_Url, $out_htmlFile, $out_logFile) 
{ 
$htmlContent = file_get_contents($in_Url); //将文件读入 $htmlContent 变量 
/** 
* @检查要生成的文件是否存在 
*/ 
if (is_file($out_htmlFile)) 
{ 
@unlink($out_htmlFile);//若文件已存在,则删除 
} 
/** 
* @ 创建目录 网页部分 
*/ 
$dir_array = explode("/", dirname($out_htmlFile)); 
chdir("/"); //改变目录到根 
for($i=1;$i<count($dir_array);$i++) 
{ 
if(is_dir($dir_array[$i])) 
{ 
chdir($dir_array[$i]); 
} 
else 
{ 
mkdir($dir_array[$i]); 
chdir($dir_array[$i]); 
} 
} 
/** 
* @ 创建目录 日志部分 
*/ 
$dir_array = explode("/", dirname($out_logFile)); 
chdir("/"); //改变目录到根 
for($i=1;$i<count($dir_array);$i++) 
{ 
if(is_dir($dir_array[$i])) 
{ 
chdir($dir_array[$i]); 
} 
else 
{ 
mkdir($dir_array[$i], 0777); 
chdir($dir_array[$i]); 
} 
} 
$handle = fopen($out_htmlFile, "w"); //打开文件指针,创建文件 
$logHandle = fopen ($out_logFile, "a+"); //打开日志文件 
/** 
* @检查目录是否可写 
*/ 
if (!is_writable($out_htmlFile)) 
{ 
echo "文件:".$out_htmlFile."不可写,请检查目录属性后重试"; 
exit(); 
} 
if (!is_writable($out_logFile)) 
{ 
echo "文件:".$out_logFile."不可写,请检查目录属性后重试"; 
exit(); 
} 
/** 
* @写入文件 
*/ 
if (!fwrite ($handle, $htmlContent)) 
{ 
$logMsg = "写入文件" . $out_htmlFile . "失败"; 
} 
else 
{ 
$logMsg = "创建文件" . $out_htmlFile . "成功"; 
} 
/** 
* @记录日志 
*/ 
$logMsg .= "(".date("Y-m-d H:i:s") .")\r\n"; 
fwrite ($logHandle, $logMsg); 
fclose($logHandle); //关闭日志指针 
fclose ($handle); //关闭指针 
} 
// }}} 
php2html("http://www.jbxue.com", dirname(__FILE__)."/yanjing_html/index.html", dirname(__FILE__)."/yanjing_log/log.txt"); 
echo "成功"; 
?>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值