仓酷云

标题: PHP网页设计写了个函数 [打印本页]

作者: 愤怒的大鸟    时间: 2015-2-4 00:19
标题: PHP网页设计写了个函数
看看西,人家这个编论坛,那个CMS,还有那啥CRM,我啥时候写一个呢?函数   <?php
/**
* 函数 data_box
* 功效 依据模板输入数据源中的内容
* 参数
* $fun 回调函数,必需供应。感化是从数据源中读取数据。请求前往的最好是联系关系数组
* $source 数据源,必需供应。可所以数组或查询了局
* $template 模板,可以没有。未供应模板时用尺度表格输入数据
* 模板格局:
* array(top=>"",block=>"",fool=>"")
* 个中:
* top 入手下手局部
* block 可反复局部,变量为联系关系数组的键,形如$IN_varname。个中前导的IN_可省略
* fool 停止局部
*/
function data_box($_fun,$_source,$_template="") {
$_ar = $_fun(&$_source);
if($_template == "") {
while(list($k,) = each($_ar)) {
$th .= "<th>$k</th>";
$td .= "<td>\$IN_$k</td>";
}
$_template = array(top=>"<table border><tr>$th</tr>",block=>"<tr>$td</tr>",fool=>"</table>");
}else if(! preg_match("/\$IN_\w+/",$_template[block]))
$_template[block] = preg_replace("/[\$](\w*)/U","\$IN_\\1",$_template[block]);

$buf = eval("return \"$_template[top]\";");
do {
extract($_ar, EXTR_PREFIX_ALL, "IN");
$buf .= eval("return \"$_template[block]\";");
}while($_ar = $_fun(&$_source));
$buf .= eval("return \"$_template[fool]\";");
return $buf;
}

function get_data($source) {
if(list($k,$v) = each($source))
return $v;
return false;
}

$arr = array(
array(a=>1,b=>2,c=>3,11,12,31),
array(a=>11,b=>12,c=>13,11,12,131)
);

echo data_box("get_data",$arr);
echo data_box("get_data",$arr,array(top=>"列表测试<select>",block=>'<option value=$a>$b',fool=>"</select><br>"));

$tpl = array(top=>"月历测试<table><tr bgcolor='#000000' style='color:#cfcfcf'><th>日</th><th>一</th><th>二</th><th>三</th><th>四</th><th>五</th><th>六</th></tr>",block=>'<tr><td>$0</td><td>$1</td><td>$2</td><td>$3</td><td>$4</td><td>$5</td><td>$6</td></tr>',fool=>"</table>");

$a = array_merge(array_fill(0,$w=date("w",mktime(0,0,0,date("m"),1,date("Y")))," "),range(1,$d=date("t")),array_fill(0,(7-($w+$d)%7)%7," "));
for($i=0;$i<count($a);$i+=7)
$ar[] = array_slice($a,$i,$i+7);

echo ereg_replace("<td>(".date("d")."</td>)","<td bgcolor='#000000' style='color:#ffffff'>\\1",data_box("get_data",$ar,$tpl));

$tpl = array(top=>"分页导航测试<br>",block=>'共{$0}条[{$1}页] 第{$2}页 {$3} {$4} {$5} {$6}',fool=>"");
$record = 20;
$pagesize = 6;
$pages = ceil($record/$pagesize);
$page=2;

$ar = array(
array($record,$pages,$page,
$page>1?"首页":"",
$page>1?"上页":"",
$page<$pages?"下页":"",
$page<$pages?"尾页":""
)
);
echo data_box("get_data",$ar,$tpl);
?>
  开发相册系统过程中就有过这样的问题,因为没有交流好,出现重复工作问题,因为文档没有详细的说明而经常临时问对方。
作者: 谁可相欹    时间: 2015-2-4 11:30
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 再现理想    时间: 2015-2-5 14:35
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
作者: 蒙在股里    时间: 2015-2-6 19:18
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 柔情似水    时间: 2015-2-9 17:55
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
作者: admin    时间: 2015-2-10 08:39
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 小魔女    时间: 2015-2-11 01:54
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
作者: 再见西城    时间: 2015-2-12 15:48
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 爱飞    时间: 2015-3-3 03:42
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 只想知道    时间: 2015-3-5 19:45
在学习的过程中不能怕麻烦,不能有懒惰的思想。学习php首先应该搭建一个lamp环境或者是wamp环境。这是学习php开发的根本。虽然网络上有很多集成的环境,安装很方便,使用起来也很稳定、
作者: 海妖    时间: 2015-3-11 00:24
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 灵魂腐蚀    时间: 2015-3-17 07:11
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
作者: 仓酷云    时间: 2015-3-23 04:11
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
作者: 若天明    时间: 2015-3-27 02:13
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 飘飘悠悠    时间: 2015-3-28 10:20
本文当是我的笔记啦,遇到的问题随时填充
作者: 分手快乐    时间: 2015-3-29 11:24
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 透明    时间: 2015-4-8 22:23
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
作者: 老尸    时间: 2015-4-10 21:11
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 变相怪杰    时间: 2015-4-11 07:08
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
作者: 不帅    时间: 2015-5-1 07:56
如果你可以写完像留言板这样的程序,那么你可以去一些别人的代码了,




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2