专为新手写的结合smarty的类,诚挚邀请大家多提宝贵意见
|
 
|
11#
发表于 2006-11-30 11:25
| 只看该作者
[php]<?php
// 分页函数
function m_page($count, $current_page = 1, $rows = 10, $link_num = 7) {
@$pages = ceil($count / $rows);
$current_page > $pages ? $current_page = $pages : true ;
$current_page < 1 ? $current_page = 1 : true;
$start = ($current_page - 1) * $rows;
$start_s = floor($current_page / $link_num);
($current_page % $link_num) == 0 ? $start_s-- : true;
$start_page = ($start_s * $link_num) + 1;
$prve = $start_page - 1;
$next = $start_page + $link_num;
for($i=0; $i < $link_num; $i++) {
if($start_page + $i > $pages) {
break;
}
$links[] = $start_page + $i;
}
return array('rows'=>$rows, 'prve'=>$prve, 'next'=>$next, 'pages'=>$pages, 'start'=>$start,
'count'=>$count, 'links'=>$links, 'current_page'=>$current_page);
}
?>
[/php]
////////////////////////////////////////////////////////////////////////////////////////////////////
// 例子, 具体使用的时候可以把输出改为格式化后的html代码,这样就不需要反复的写模板
//////////////////////////////////////////////////////////////////////////////////////////////////
php这样写:
<?
// $tit_nums这个变量为记录总数,$page这个变量为当前页码,第三个参数为每页显示10行,第四个参数为每次显示7个链接例如: << 8,9,10,11,12,13,14 >>这样
$page_arr = m_page($tit_nums, $page, 10, 7);
$m->assign($page_arr);
?>
模板这样写:
[code]
一共有{$pages}页
一共有{$count}条数据
每页显示{$rows}行
{if $prve>1}
<a href="test.php?page={$prve}">上一页</a>
{/if}
{foreach from=$links item=page_num}
{if $current_page==$page_num}
<u>{$page_num}</u>
{else}
<a href="test.php?page={$page_num}">{$page_num}</a>
{/if}
{/foreach}
{if $next<=$page_count}
<a href="test.php?page={$next}">下一页</a>
{/if}
[/code]
效果类似这样(假设当前在第11页):
[code]
一共有19页
一共有197条数据
每页显示10行
<a href="test.php?page=7">上一页</a>
<a href="test.php?page=8">8</a>
<a href="test.php?page=9">9</a>
<a href="test.php?page=10">10</a>
<u>11</u>
<a href="test.php?page=12">12</a>
<a href="test.php?page=13">13</a>
<a href="test.php?page=14">14</a>
<a href="test.php?page=15">下一页</a>
[/code]
[ 本帖最后由 machine_马 于 2007-4-27 00:55 编辑 ] |
|
|
|
|
|
|
|
|
 
|
12#
发表于 2006-11-30 11:27
| 只看该作者
<?php
function m_print_r($var) {
echo '<pre>';
print_r($var);
echo '</pre>';
}
?>
<?php
function m_var_dump($var) {
echo '<pre>';
var_dump($var);
echo '</pre>';
}
?>
[ 本帖最后由 machine_马 于 2006-12-29 12:52 编辑 ] |
|
|
|
|
|
|
|
|
 
|
13#
发表于 2006-11-30 11:28
| 只看该作者
[php]<?php
// 二维数组排序函数
function m_sort($arr, $f_a, $m_a = SORT_ASC, $f_b = '', $m_b = SORT_ASC, $f_c = '', $m_c = SORT_ASC) {
$ok = false;
foreach($arr as $rs) {
foreach($rs as $key => $value) {
${"{$key}_x"}[] = $value;
}
}
if(empty($f_b)) {
@$ok = array_multisort(${"{$f_a}_x"}, $m_a , $arr);
} elseif(empty($f_c)) {
@$ok = array_multisort(${"{$f_a}_x"}, $m_a , ${"{$f_b}_x"}, $m_b, $arr);
} else {
@$ok = array_multisort(${"{$f_a}_x"}, $m_a , ${"{$f_b}_x"}, $m_b, ${"{$f_c}_x"}, $m_c, $arr);
}
if(!$ok) {
die("二维数组排序时,参数传递错误。");
}
return $arr;
}
?>[/php]
[ 本帖最后由 machine_马 于 2006-12-29 12:53 编辑 ] |
|
|
|
|
|
|
|
|
 
|
14#
发表于 2006-11-30 11:28
| 只看该作者
[php]
<?php
// 去斜线
function m_stripslashes($gpc) {
if(get_magic_quotes_gpc())
{
if(is_array($gpc)) {
while(list($k, $v) = each($gpc)) {
if(is_array($gpc[$k])) {
while (list($k2, $v2) = each($gpc[$k])) {
$gpc[$k][$k2] = stripslashes($v2);
}
@reset($gpc[$k]);
} else {
$gpc[$k] = stripslashes($v);
}
}
@reset($gpc);
} else {
$gpc = stripslashes($gpc);
}
}
return $gpc;
}
?>
[/php]
[ 本帖最后由 machine_马 于 2006-12-29 12:53 编辑 ] |
|
|
|
|
|
|
|
|
 
|
15#
发表于 2006-11-30 11:29
| 只看该作者
[php]
<?php
// 文本操作函数
// 修改
function m_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 m_txt_add($pattern, $text, $content) {
$pattern = "<!--{$pattern}-->";
@$ok = preg_match("{{$pattern}}Ssi", $content);
if($ok != true) {
return false;
}
$add = "{$text}\n{$pattern}";
$new_content = str_replace($pattern, $add, $content);
return $new_content;
}
// 删除
function m_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;
}
//获取
function m_txt_get($pattern, $content) {
$pattern_start = "<!--$pattern-->";
$pattern_end = "<!--/$pattern-->";
@$ok = preg_match("{{$pattern_start}.*{$pattern_end}}Ssi", $content, $match);
if($ok != true) {
return false;
}
return $match[0];
}
?>
[/php]
[ 本帖最后由 machine_马 于 2006-12-29 12:54 编辑 ] |
|
|
|
|
|
|
|
|
 
|
16#
发表于 2006-11-30 11:30
| 只看该作者
[php]
<?php
// 上传函数
function m_up_file($files, $up_url, $type, $max_size = 2097152) {
$i = 0;
if(!is_array($files)) {
die('参数传递错误');
}
$type_pattern = is_array($type) ? '\.('.implode(")|(", $type).')' : "\.($type)";
foreach($files as $key => $arr) {
$ok = false;
if($arr['error'] == 0) {
if(!is_uploaded_file($arr['tmp_name'])) {
$err_msg .= "文件:<b>{$arr['name']}</b>不可上传<br>";
continue;
} elseif($_FILES['up_file']['size'] > $max_size) {
$err_msg .= "文件:<b>{$arr['name']}</b>上传失败,原因是:文件超过限定大小<br>";
continue;
} elseif(!preg_match("!{$type_pattern}!Si", $arr['name'])) {
$err_msg .= "文件<b>{$arr['name']}</b>上传失败,原因是:格式不正确<br>";
continue;
} else {
$txt = substr(str_shuffle('abcdefghijklmnopqrstuvwxyz'), -4);
$hz = strtolower(strstr($arr['name'], '.'));
$new_name = date('YmdHis').$txt.$hz;
if(is_array($up_url)) {
$hz_key = str_replace('.', '', $hz);
$up_url_arr = array();
foreach($up_url as $url_key => $value) {
$key_arr = explode('|', $url_key);
$key_arr = array_combine($key_arr, array_pad(array(), count($key_arr), $value));
$up_url_arr = array_merge($up_url_arr, $key_arr);
}
$up_url_arr = array_change_key_case($up_url_arr, CASE_LOWER);
!preg_match('!\/$!', $up_url_arr[$hz_key]) ? $up_url_arr[$hz_key] .= '/' : true;
$new_url = $up_url_arr[$hz_key];
} else {
!preg_match('!\/$!', $up_url) ? $up_url .= '/' : true;
$new_url = $up_url;
}
if(!file_exists(THIS_DIR.$new_url)) {
die("系统错误:上传文件夹{$new_url}不存在。");
}
@$ok = move_uploaded_file($arr['tmp_name'], THIS_DIR.$new_url.$new_name);
}
}
if($ok == true) {
$rs[$i]['url'] = $new_url;
$rs[$i]['name'] = $arr['name'];
$rs[$i]['type'] = strtoupper(str_replace('.', '', $hz));
$i++;
} elseif(!empty($arr['name'])) {
$err_msg .= "文件<b>{$arr['name']}</b>上传出错<br>";
continue;
}
}
return array('arr' => $rs, 'err_msg' => $err_msg, 'num' => $i);
}
?>
[/php]
[ 本帖最后由 machine_马 于 2006-12-29 12:54 编辑 ] |
|
|
|
|
|
|
|
|
 
|
18#
发表于 2006-12-4 07:38
| 只看该作者
谢谢上面的兄弟支持,只是如果能再给点建议发表点评论就更好了。
为了便于大家理解,放一个例子吧,没有特意去写例子,这个是我的一个程序中的目录树部分。
还有,不是偶说,好歹也是原创阿,我很尽心写的,咋就这么冷清呢?连管理员都不回复
我可是浏览过斑竹守则的哦,里面有说道要鼓励发帖,特别是原创的帖子。
拜托,各位高手们,来看看,提提意见吧。看完觉得不爽骂我两句都行,有交流才有提高啊,拜托各位DX了。
[PHP]
<?php
/********************************************************************
* 文件头
*******************************************************************/
define('THIS_DIR', '../');
if(@!include_once(THIS_DIR.'inc/head.php')) die('系统错误:系统文件丢失');
//设置静态页面永不过期
$m->goto_html(-1, 'html/bbs');
//载入m_sort函数
$m->load_func('m_sort');
/********************************************************************
* 读取所有的板块
*******************************************************************/
$block_part_res = $m->send_query('
SELECT part_id, part_layer, part_name, part_index, part_show
FROM '.BLOCK_PART_TABLE.'
ORDER BY part_layer');
//配置二层循环数组,
$i=-1;$j=0;
while($rs = mysql_fetch_assoc($block_part_res)) {
//如果整除10000,则说明该板块是一级板块(本系统只需二级板块,多级以此类推)
if($rs['part_layer'] % 10000 == 0) {
$i++;$j=0;
$part_rs[$rs['part_show']][$i] = $rs;
} else {
$part_rs[$rs['part_show']][$i]['arr'][$j] = $rs;
$j++;
}
}
//这里就是典型的对二维数组排序了,将板块按part_ind
if(!empty($part_rs['Y'])) {
$part_rs['Y'] = m_sort($part_rs['Y'], 'part_index', SORT_ASC);
}
if(!empty($part_rs['N'])) {
$part_rs['N'] = m_sort($part_rs['N'], 'part_index', SORT_ASC);
}
$m->assign(array('this_url'=>'../../', 'op_menu'=>$part_rs['N'], 'menu'=>$part_rs['Y']));
$m->create_html($tpl_arr['bbs_tree_tpl'], 'html/bbs');
?>
[/PHP]
[ 本帖最后由 machine_马 于 2006-12-29 12:56 编辑 ] |
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
|
|
|
|
|
|
|
|
 
|
20#
发表于 2006-12-7 12:19
| 只看该作者
:) 非常的好,受益了!
感谢楼主提供这么好的资料信息. |
|
|
|
|
|
|
|