- 论坛徽章:
- 0
|
php以apache的module方式运行于服务器上,为我们提供实时的数据服务,同样,php一样可以通过shell的方式运行,效率更高!
最近项目中需要批量生成大量的静态化html文件,于是用php来实现了该功能。虽然效率不是很高,但对比纯web的方式却是快了不知多少,咔咔!
#!/usr/local/php/bin/php
?php
define('SITEURL','http://religion-html249.xxxx.com/');
echo '#####################################################'."\n\r"."start ........\n\r";
/**
* connect the mysql database
* by Firn hailingr@163.com
*/
function connect_db($host='localhost',$user='root',$pass='123456',$dataName='book'){
$conn = mysql_connect($host,$user,$pass);
if($dataName){
mysql_select_db($dataName,$conn);
}
return $conn;
}
/**
* exec the sql script
* by Firn hailingr@163.com
*/
function query($sql,$conn){
$result = mysql_query($sql,$conn);
while ($row = mysql_fetch_array($result)) {
$rows[] =$row;
}
return $rows;
}
/**
* 根据书籍id生产与之对应的书籍静态页面
* 所有的生产的静态html页面均存放于html/bookinfo/分类id/book_id.html
* @param int $book_id
*/
function createHtmlBookInfo($book_id){
global $conn;
$htmlDir = '/web/religion-html.xxxx.com/html/bookinfo/';
$book = query("SELECT type_id FROM bookinfo WHERE book_id = $book_id",$conn);
$typeId = $book[0]['type_id'];
$htmlDir.=$typeId;
if(!file_exists($htmlDir)) mkdir($htmlDir,0775);
if(!file_exists($htmlDir.'/cn')) mkdir($htmlDir.'/cn',0775);
if(!file_exists($htmlDir.'/tw')) mkdir($htmlDir.'/tw',0775);
//简体文件生产
$content = file_get_contents(SITEURL.'bookinfo/'.$book_id.'?l=cn');
$hp = fopen($htmlDir.'/cn/'.$book_id.'.html','w');
fwrite($hp,$content);
fclose($hp);
echo $htmlDir.'/cn/'.$book_id.'.html'.' Ok!'."\n\r";
//繁体文件生产
$content = file_get_contents(SITEURL.'bookinfo/'.$book_id.'?l=tw');
$hp = fopen($htmlDir.'/tw/'.$book_id.'.html','w');
fwrite($hp,$content);
fclose($hp);
echo $htmlDir.'/tw/'.$book_id.'.html'.' ok!'."\n\r";
}
$conn = connect_db();
$sql = "SELECT book_id from bookinfo";
$books = query($sql,$conn);
//echo $nums = count($books);
//createHtmlBookInfo(61);//with the book_id create the html
//create all htmls
foreach($books as $k=>$v){
createHtmlBookInfo($v['book_id']);
}
echo "\n\r".'#########################################'."\n\r"."create all bookinfo ok!!";
?>
存为create
chmod +x create
./create
即可运行了
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/54739/showart_439625.html |
|