页:
[1]
| machine_马 | 2006-11-24 07:24 AM |
|
专为新手写的结合smarty的类,请大家多多指点
这个是为新手(也为自己)写的结合smarty一起使用的类,是未完成的,所以现在放出来的目的不是马上让新手使用,
而是希望各位高手多多提意见,我尽量完善它。
首先声明,我写这个的目的也是为了锻炼自己,尽管我知道现在已经有很多类似的类了,但是我还是决定来写一个,
所以请大家在浏览的时候口下留情。
目前该类包括以下功能
[数据库]
目前支持MYSQL与ACCESS两种数据库
配置与使用都简单快捷
[错误处理]
分为系统错误和用户错误
[静态生成]
自动生成静态页面(不完全的静态,完全的比较复杂,目前不考虑)
可设置静态页面过期时间
[二维数组排序]
可以让二维数组作类似:“先按字段a升序,再按字段b降序”这样的排序
[动态加载]
对于不常用的功能,我采用加载的方法来使用,个人认为这样可以节约资源
[分页]
这里我也不知道做得好不好,我是先写了一个类,再写一个函数来调它,目的是使用得时候比较方便
[验证表单]
把需要验证的表单事先写进函数类,判别的时候只需要把$_POST传入就可以了
[防止跨站攻击]
把这个功能也写道一个函数内了
[中文截取函数]
不是我写的,拿来修改了一下而已
[UBB代码输出]
实现自己的UBB(未完成)
目前已经基本实现就是以上功能了
接下来还打算做
[图片处理]
[上传文件]
等一些其他常用功能
希望各位高手多多提意见
顺便放一则广告
我将是2007届应届毕业生,数学与应用数学本科专业,有一年中小型PHP项目工作经验(在校期间兼职)
熟悉PHP,MYSQL,WINBINDER,HTML,DW,ZEND
了解APACHE,AJAX,JAVASCRIPT,PHOTOSHOP,C++,CSS
正在学习LINUX
有很强的自学能力,在校期间担任校网络部部长,校思政网站长,有高度的团队意识与责任心。
有项目策划、构架与安排能力。
如果有公司觉得我还行,请联系我(QQ:76910637,EMAIL:msr182@163.com) |
| machine_马 | 2006-11-24 07:25 AM |
|
配置文件:config.php
[code]
;**********************
;*****<?php/***********
;**********************
;如果是使用access数据库,请把下面database的值改为access
[chose database]
database = mysql
[normal info]
db_name = machine_bbs
user_name = root
password = 123456
[mysql]
host_name = localhost
;**********************
;**********************
;********/?>***********
[/code] |
| machine_马 | 2006-11-24 07:26 AM |
|
配置文件func_list.php
[code]
;**********************
;*****<?php/***********
;**********************
[function_list]
m_page = lib/function/m_page.php
m_out_put = lib/function/m_out_put.php
m_cnsubstr = lib/function/m_cnsubstr.php
m_check_key = lib/function/m_check_key.php
m_check_fill = lib/function/m_check_fill.php
;**********************
;**********************
;********/?>***********
[/code] |
| machine_马 | 2006-11-24 07:29 AM |
|
验证表单函数m_check_fill.php
[php]
<?php
function m_check_fill( $check_arr = array() )
{
$pattern['idname'] = array('!^[a-z0-9]{3,8}$!i' , '您输入的用户名格式不正确');
$pattern['username'] = array('!^.{4,12}$!' , '您输入的用户昵称格式不正确');
$pattern['email'] = array('!^([a-z0-9]+(\.[a-z0-9]+)?@[a-z0-9]+\.[a-z0-9]+(\.[a-z0-9]+)?)?$!i' , '您输入的电子邮箱格式不正确');
$pattern['oicq'] = array('!^([0-9]{4,12})?$!' , '您输入的OICQ格式不正确');
$pattern['password'] = array('!^[a-z0-9]{6,14}$!i' , '您输入的密码格式不正确');
$pattern['real_name'] = array('!^.{4,20}$!' , '您输入的真实姓名格式不正确');
$pattern['id_card'] = array('!^[0-9]{15}([0-9]{2}[a-z0-9])?$!i' , '您输入的身份证号码格式不正确');
$pattern['title'] = array('!^.{1,255}$!' , '您输入的帖子标题格式不正确');
$pattern['block_name'] = array('!^.{3,12}$!' , '您输入的板块名称格式不正确');
$err_msg = '';
if ( !is_array( $check_arr ) )
{
return '很抱歉,系统出现参数传递错误,请通知管理员,谢谢合作';
}
foreach ( $check_arr as $key => $value )
{
if ( !empty( $pattern[$key] ) )
{
if( !preg_match( $pattern[$key][0], $value ) )
{
$err_msg .= $pattern[$key][1] . '<br>';
}
}
}
return $err_msg;
}
?>
[/php]
[[i] 本帖最后由 machine_马 于 2006-11-24 03:43 PM 编辑 [/i]] |
| machine_马 | 2006-11-24 07:31 AM |
|
中文截取函数m_cnsubstr.php
[php
<?php
function m_cnsubstr( $string, $sublen )
{
if( $sublen >= strlen( $string ) )
{
return $string;
}
$s = "";
for ( $i = 0; $i < $sublen; $i++ )
{
if( ord( $string{$i} ) > 127 )
{
$s .= $string{$i} . $string{++$i};
continue;
}
else
{
$s .= $string{$i};
continue;
}
}
return $s . '…';
}
?>
[/php]
[[i] 本帖最后由 machine_马 于 2006-11-24 03:44 PM 编辑 [/i]] |
| machine_马 | 2006-11-24 07:36 AM |
|
防止跨站攻击函数:m_check_key.php
[php]
<?php
function m_check_key( $no_reload = true )
{
if ( empty( $_SESSION['check'] ) || $_SESSION['check'] != $_POST['check'] )
{
unset( $_SESSION['check'] );
return '发生错误,这也许是由于您重复提交数据造成的,请重新提交。<br>';
}
if ( $no_reload == true )
{
unset( $_SESSION['check'] );
}
}
?>
[/php]
[[i] 本帖最后由 machine_马 于 2006-11-24 03:44 PM 编辑 [/i]] |
| chaizx | 2006-11-24 12:36 PM |
|
| 好文章,顶一个了! |
| fly512 | 2006-11-24 01:41 PM |
|
越是基础的东西,越是不能用别人的
打好基础是很重要的 |
| machine_马 | 2006-11-25 08:44 AM |
|
文本操作函数
[php]
<?php
// 修改
function txt_replace( $pattern, $text, $content )
{
$pattern_start = "<!--$pattern-->";
$pattern_end = "<!--/$pattern-->";
@$ok = preg_match( "{{$pattern_start}.*{$pattern_end}}Ssi", $content, $match );
if ( $ok != true )
{
return false;
}
$replace = "{$pattern_start}{$text}{$pattern_end}";
$new_content = str_replace( $match[0], $replace, $content );
return $new_content;
}
// 追加
function txt_add( $pattern, $text, $content )
{
$pattern = "<!--{$pattern}-->";
@$ok = preg_match( "{{$pattern}}Ssi", $content );
if ( $ok != true )
{
return false;
}
$add = "{$pattern}\n{$text}";
$new_content = str_replace( $pattern, $add, $content );
return $new_content;
}
// 删除
function txt_delete( $pattern, $content )
{
$pattern_start = "<!--$pattern-->";
$pattern_end = "<!--/$pattern-->";
@$ok = preg_match( "{{$pattern_start}.*{$pattern_end}}Ssi", $content, $match );
if ( $ok != true )
{
return false;
}
$new_content = str_replace( $match[0], '', $content );
return $new_content;
}
?>
[/php] |
| machine_马 | 2006-11-25 01:10 PM |
|
fly512
看了你的作品
仰慕之情由心而生 由感而发 |
| machine_马 | 2006-11-30 05:17 PM |
|
竟然没人理,失望ing
并且发了的帖,20分钟之后就不可以在修改了
这样程序更新了都没法修改,郁闷ing
失望+郁闷=以后不上来发帖了 |
|
| 不错的东西。收藏一下。也指出一点缺点。mysql与access要分别写在两个文件里,然后根据配置所选再分别调用,这样会比较好一点 |
Powered by Discuz! Archiver 6.1.0
© 2001-2006 Comsenz Inc.
Processed in 0.006763 second(s), 2 queries |