广告生成与编辑操作的原理都是对广告代码本身的一种修改(可以把广告代码生成看作是一次没有修改内容的编辑操作),编辑后按照指定规则生成 .js后缀的广告文件。生成这个文件之后,用户就可以在自己的页面中嵌入调用代码,实现广告发布及内容管理。广州网站设计
1.广告生成
下面请看广告生成是如何实现的。具体的代码如下:
广州网站设计
- include_once(dirname(__FILE__)."/inc/include.smarty.php");
- //加载Smarty配置文件
- include(dirname(__FILE__). "/inc/include.function.php"); //加载函数库文件
- require(dirname(__FILE__)."/config/config.php"); //加载容配置文件
- $id=$_REQUEST[id];
- $nx=$_REQUEST[nx];
- $notice=$_REQUEST[notice];
- $data=$_REQUEST[data];
- $gge=$_REQUEST[gge];
- $alljs=$_REQUEST[alljs];
- /*批量生成JS*/
- if($_REQUEST[action]=="makejs"){ //获得动作类型
- echo "<xmp>";
- $msg="";
- $echoid="";
- $tmp=explode("|www_allen|",file_get_contents($dbtable)); //截取字符串
- $len=count($tmp);
- //取得列数
- /*所有JS */
- if($alljs){
- for($i=0;$i<$len;$i++){
- $tmp[$i] = trim($tmp[$i]);
- if($tmp[$i] == "") continue;
- $info=explode("|allen|",$tmp[$i]); //切割字符串数组
- $echoid.="$addata/$info[0].js <br>";
- if($info[1]=="纯HTML"){
- $data=allen_thu($info[2]); //执行正则表达式的搜索和替换
- allen_file($data,"$addata/$info[0].js");
- }else{
- allen_file($info[2],"$addata/$info[0].js");
- }
- }
- }else{
- for($i=0;$i<$len;$i++){
- $tmp[$i] = trim($tmp[$i]);
- if($tmp[$i] == "") continue;
- $info=explode("|allen|",$tmp[$i]); //切割字符串数组
- /*JS的ID*/
- $tcount=count($_REQUEST['idjs']); //计算idjs条数
- for($j=0;$j<=$tcount;$j++){
- $idjs=$_REQUEST['idjs'][$j];
- echo "$idjs\n";
- if($info[0]==$idjs){
- $echoid.="$addata/$info[0].js <br>";
- if($info[1]=="纯HTML"){
- $data=allen_thu($info[2]);
- allen_file($data,"$addata/$info[0].js");
- }else{
- allen_file($info[2],"$addata/$info[0].js");
- }
- }
- }
- }
- }
- isok("生成以下ID的JS成功:<p>$echoid");
- }
【代码解读】
程序首先判断操作的类型action="makejs"代表生成对应的JS广告文件,还有一个作用就是,通过操作的类型来实现程序的流程控制,区分生成和修改的业务代码。判断操作代码如下:
广州网站建设
- if($_REQUEST[action]=="makejs"){
- //生成JS文件代码
- }
生成的文件的代码如下:
广州网站建设
- allen_file($data,"$addata/$info[0].js");
上述代码中,allen_file()函数是在公共函数库中创建的,用来生成指定文件的函数。在广告列表页面选择要生成的广告条项目,单击"生成选定Js"按钮完成生成任务,效果如图15.11所示。
通过之前的程序执行流程了解到,广告代码会生成对应的一个对应.js后缀的文件,保存到根目录中的js文件夹中。打开这个文件夹,预览效果如图15.12所示。



