风起云涌,伴随着
2012
世界“末日”的进程,我们兄弟连第四十三战区已经开始了序幕
…. …
看过了古有刘备、孙权、曹操的三国鼎立,今有腾讯、三六零的桌面大战,我们兄弟连的四十三区战场已经拉开了序幕,而首要的一战就是不能逃避的“
first blood
”。
虽然早在我们誓师当天就已经知道第一场战役准确的爆发时间,但还是由于没有经验遇到了大大小小的磨难,下面就来回顾下艰苦的“
first blood
”
---PHP
面向过程战役。
战前准备:
我们的战场分配是在
4
月中旬到五一过后,比以往的战役长了一些~~古人孔明(不知是不是他说的)曾说过:兵马未动,粮草先行~~我在完成第一步的
HTML
、
DIV+CSS
部分完成后,知道该储备粮草来为一月后的战役做准备了,首页在四月初的时候就嘱咐所有参战官兵先做好战役的策划(网站流程图),因为能否占据战役的主动权关键就在于此了,可能是因为“
first blood
”所以大家都还没有充分的心理准备,所以对策划重视的程度有限,而我们第一个战役还是单人积分赛,能做的还是有限啊,所以就此罢了~~
短暂的清明过后,我有发出了第二条建议,也是我们的战区指挥“”的命令,严格一星期做好军容、军貌(前后台静态页面),要说还是战区指挥有先见之明,但要知道我们可不是花木兰的娘子军啊,我们都是真正的纯爷们(咔咔六人组除外),对于军徽、军貌之类的真的是很外行啊,看到一个个将领都在页面上红红绿绿的框框,真是很堪忧啊,这不是高射炮打蚊子
—
大财小用么,怎么办,只好他山之石可以攻玉了,以他人之长,补己之短,我们纷纷收录了大量的成熟页面,专心的转为自己所用,但转换也充分的练就了我们的前台功底~~我在弄完前台后猛然发现,战场的布置已经可以了,但后方自己的将营还是“茅房”一个啊~~赶紧请示战区指挥“”,看到我们的辛苦,下发下三十个锦囊,把我们的“茅房”化腐朽为神奇~~我们无一不献上了感激的目光
… …
但我们踏进了冠冕堂皇的“宫殿”后发现,重要的“白虎堂”等军机要地依旧是茅房一间,于是很叹息,怎么没给我来个彻底的变革呢?很平和的一笑而过~~
再这战备之时,不巧我们师的一员大将,内部的“滔哥”却触犯了四十三战区的军规,被战区巡抚发现并处以
5000 point
的惩罚,这是在我们战备阶段的一大打击,因为他成为了我们四十三战区违规的“
first blood
”~~不过他也深刻体会到了惩罚的严重性,坚持吃了两周的麻辣豆腐~~
战役开始:
随着短暂的一周战备,紧张的战役已经打响了,因为这场战役我们的几员大将都是“
first blood
” 所以有些吃力,还好发现其他军团也是同样的情况,我们这时发言的《亮剑》里面的李云龙独立团的作风,不怕吃苦,全组坚持到班级最后一个,当然也同时响应了他的另一作风,第二天都没起来,但我们带着困意迈着艰难的步子走到了二楼的时候,发现我们的张旅长(沫沫)已经等候我们多时了,他当然也知道我们为了革命的胜利奋斗的很辛苦,但军队里面依旧是要有军规的,当赏则赏,该罚必罚,而我也清楚毕竟触犯了军规晚了二十分钟到岗,但不能让其他部队和自己辛苦的将领憋屈,所以还是坦然的把事情说清楚,最起码是罚的情有可原~~更何况,第二天就规定可以晚一个半小时到,只要提前通知上级~~~
艰难历程:
自从开战以来,我们部队的生活完全的颠倒了,所有的吃饭睡觉完全为了服从战局的需要,我们天亮回去,午夜吃饭,断电无阻,断水无碍,风风火火的奋战了两星期,以前在国军(单位)的那些恶习都可以抛弃,当时不敢想象的没有手机、没有企鹅的生活,我们竟然可以平稳的度过,让自己都不能想象的一天
18
小时的写代码、
debug
,都是原以为不可能的事情,总结出原来没什么是不可能的,只有自己不想去做~~
战事将尽:
随着时间飞速流转,已经到了收尾阶段,我们才发现有好多都没有处理好,战场也没有打扫,迎接指挥官审阅的队伍(
install
)也还没做好,虽然我已经在前一个月做了些军粮储备,但还是对战局考虑不够,依旧很吃紧。这时,我们的旅长(沫沫)给我们调来了前四十战区特种兵部队,看过他的战术演练后,才知道,我们小米加步枪还是有很大差距的,这更加刺激我们要提高自己的战斗力量,通过他的讲述也吸取了平时学不到的地方(例如:
update
语句中如果没有修改就会报错,但他很好的解决了这个问题就是加一个附加字段,即使所有的全部一样,但附加字段更新为当前时间戳,这样就完美的解决了不修改提交报错的
bug
),不仅要在武器上(
js
)更要在实力上(
PHP
)再提高一步,但已经距离审阅的期限分秒可数,只好把欢迎卫队组建好,在组建过程中发现我们的队伍一旦变身成了平民他们就不愿意再当兵了(
sql
导出乱码,导入乱码),怎么办呢,这个纠结的问题提交到了我们战区指挥()那里,他也一直为这个事情忧心忡忡
… ….
我一看不能再把自己的小事麻烦上级了,于是我们军队内部进行了思想教育,分为两种:我们的帅龙将领采用的是去农田把农夫全部说服回军队当士兵
{
mysql_query('set character_set_connection=utf8,
character_set_client=utf8,character_set_results=utf8', $link) or die(mysql_error());//
自动安装程序的
install.php
里加上以上设置
,
可解决导入的数据库文件在前台查看乱码的问题
};
而我想还是在他们变为平民前做思想教育吧~~
//==========================================
数据库备份函数
===============================================
/**
*
数据库备份函数
dump_database
*@param1 string $database_name
传入保存数据库名称
*@param1 string $save_path
备份文件路径
;
*@param1 string $time
是否加入日期
;
* @return array
返回一维数组
;
*/
function dump_database($data_name, $save_path = './',$times=0) {
ini_set('max_execution_time', 0);
echo '
备份开始
...<br>';
echo '===================================================<br>';
$time = explode(' ', microtime());
$start_time = $time[1] + $time[0];
$database_name = DBNAME;
//打开或创建一个用来存放备份数据库代码的文件
if($times)
{
$file = $data_name.date("Ymd");
}
else
{
$file = $data_name;
}
if(file_exists($save_path.$file))
{
$file = $file.rand(1,999);
}
$fo = @fopen($save_path.$file.'.sql', 'a');
if($fo === false){ echo '
文件找不到
,
或您没有权限打开该文件
!'; }
//
连接数据库
$link = @mysql_connect('localhost', 'root', '') or die('
数据库连接失败
,error:'.mysql_error());
//
获取该数据库中的表
$ret = mysql_list_tables($database_name); $table_list = array();
while($table = mysql_fetch_assoc($ret)){
$table_list[] = $table['Tables_in_'.$database_name];
echo '<span id="'.$table['Tables_in_'.$database_name].'">'.$table['Tables_in_'.$database_name].'</span><br>';
}
foreach($table_list as $table){
//获取当前表被创建时的sql语句
$sql = 'show create table '.$table;
$create_table_ret = mysql_fetch_assoc(mysql_query($sql));
$create_table_sql = 'drop table if exists '.$table.";\n";
$create_table_sql .= $create_table_ret['Create Table'].";\n";
//获取当前表中的数据并组成插入形式的sql语句
$sql = 'select * from '.$table;
$insert_data_ret = mysql_query($sql);
$insert_data_sql = 'insert into '.$table.' values';
while($row = mysql_fetch_assoc($insert_data_ret)){
$insert_data_sql .= '('; foreach($row as $key => $val){
$insert_data_sql .= '"'.mysql_real_escape_string($val, $link).'",';
}
$insert_data_sql = rtrim($insert_data_sql, ',').'),';
}
$insert_data_sql = rtrim($insert_data_sql, ',').";\n\n\n";
if(!mysql_num_rows($insert_data_ret)){
$create_table_sql .= "\n\n";
}
fwrite($fo, $create_table_sql);
if(mysql_num_rows($insert_data_ret)){
fwrite($fo, $insert_data_sql);
}
$innerHTML = $table."[<span style='color: green'>
备份完成
!</span>]";
$script = '<script>';
$script .= 'document.getElementById("'.$table.'").innerHTML = "'.$innerHTML.'";'; $script .= '</script>';
echo $script; } fclose($fo);
$time = explode(' ', microtime());
$end_time = $time[1] + $time[0];
echo '<b>
备份完成
(
共计
<span style="color: red">'.count($table_list).'</span>
个表
)
,
花费时间为
:<span style="color: red">', $end_time - $start_time, '</span>
秒
!</b>';
}
虽然处理的方式有点不同但同样的结果就是我们队伍中没有一个掉队的,安然度过了(乱码)这一关,当然不是什么都尽如人意,不过我经常想的一句话:世上没有任何一件事是完美的,但如果你不努力那就一定是不完美的~~
当然在未来的三个月不知道以后double kill(二项目)、triple kill(最终项目)是不是更加的惨烈,但我们会以十倍的信心犹如我们的V5七师一样,在战场上永远散发的无穷的霸气~~~