?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
//递归获得角色ID字符串
function explodeRole($roleObj, &$resultStr){
if(0 < count($roleObj->childRoleObjArr)){
foreach($roleObj->childRoleObjArr as $childRoleObj){
if('' == $resultStr){
$resultStr .= "{$childRoleObj->id}";
}else{
$resultStr .= ", {$childRoleObj->id}";
}
explodeRole($childRoleObj, $resultStr);
}
}
}
//递归获取级联角色信息数组
function makeRoleRelation(&$roleObjArr){
foreach($roleObjArr as $item){
$item->childRoleObjArr = getRoleObjArrByParentId($item->id);
if(0 < count($item->childRoleObjArr)){
makeRoleRelation($item->childRoleObjArr);
}
}
}
//通过父角色的id获取子角色信息
function getRoleObjArrByParentId($parentid){
$operCOGPSTRTSysRole = new COGPSTRTSysRole();
$operCOGPSTRTSysRole->setColumn($operCOGPSTRTSysRole->getAllColumn());
$operCOGPSTRTSysRole->setWhere("parentroleid={$parentid}");
$roleObjArr = $operCOGPSTRTSysRole->convResult2ObjArr($operCOGPSTRTSysRole->selectTable());
return isset($roleObjArr)?$roleObjArr:array();
}
php的递归函数用法
一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。这对于程序员来说,通常有很高的实用价值,常用来将复杂的问题分解为简单的并相同的情况,反复做这种处理直到问题解决。
用递归函数与不用递归函数的区别
示例一:使用静态变量
?
1
2
3
4
5
6
7
8
function test(){
static $dig=0;
if($dig++<10){
echo $dig;
test();
}
}
test();//12345678910
示例二:使用递归函数和循环实现字符串逆转排列
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function unreverse($str){
for($i=1;$i<=strlen($str);$i++){
echo substr($str,-$i,1);
}
}
unreverse("abcdefg");//gfedcbc
function reverse($str){
if(strlen($str)>0){
reverse(substr($str,1));
echo substr($str,0,1);
return;
}
}
reverse("abcdefg");//gfedcbc
递归函数很多时候我们可以循环替代,建议当我们不能用循环替代时再用,因为用循环我们更容易理解,更不容易出错。
php递归函数 php支付递归函数,递归函数就是调用自己本身,这些函数特别适用于浏览动态数据结构,例如树和列表。几乎没有web应用程序要求使用复杂的数据结构
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
function reversr_r($str)
{
if (strlen($str)>0)
reverse_r(substr($str,1));
echo substr($str,0,1);
return;
}
?>
<?php
function reverse_i($str)
{
for($i=1;$i<=strlen($str);$i++)
{
echo substr($str,-$i,1);
}
}
这个程序清单中实现两个函数,这两个函数都可以相反的顺序打印字符串的内容函数reversr_r是通过递归实现的,而函数reverse_i()是通过循环实现的
PHP连接数据库之PHP连接MYSQL数据库代码< ?php $mysql_server_name='localhost'; //改成自己的mysql数据库服务器 $mysql_username='root'; //改成自己的mysql数据库用户名 $mysql_password='12345678'; //改成自己的mysql数据库密码 $mysql_database='mycounter'; //改成自己的mysql数据库名 $conn=mysql_connect($mysql_server_name,$mysql_username,$mysql_password,$mysql_database); $sql='CREATE DATABASE mycounter DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci; '; mysql_query($sql); $sql='CREATE TABLE `counter` (`id` INT(255) UNSIGNED NOT NULL AUTO_INCREMENT ,`count` INT(255) UNSIGNED NOT NULL DEFAULT 0,PRIMARY KEY ( `id` ) ) TYPE = innodb;'; mysql_select_db($mysql_database,$conn); $result=mysql_query($sql); //echo $sql; mysql_close($conn); echo "Hello!数据库mycounter已经成功建立!"; ?> PHP连接数据库之PHP连接ACCESS数据库代码方法< ? $conn = new com("ADODB.Connection"); $connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=". realpath("data/db.mdb"); $conn->Open($connstr); $rs = new com("ADODB.RecordSet"); $rs->Open("select * from szd_t",$conn,1,1); while(! $rs->eof) { $f = $rs->Fields(1); echo $f->value; $rs->MoveNext(); } ?>
一、基本用法:{dede:field.descriptionrunphp='yes'}if(@me<>'' )@me = '<div class="intro">'.@me.'</div>';{/dede:field.description} {dede:field name='imgurls' alt='图片输出区'}[field:pagestylerunphp='yes'] @me= (@me==3 ? '<li>' : '');[/field:pagestyle]<a href='[field:linkurl/]' [field:pagestyle runphp='yes'] @me= (@me==3 ? 'class="pic"' : ''); [/field:pagestyle]><img src='[field:imgsrc/]' id='bigimg' [field:imgwidth /] alt='[field:alttext /]' border='0' /></a><a href='[field:linkurl/]' [field:pagestyle runphp='yes']@me = (@me==3 ? 'class="title"' : '');[/field:pagestyle]>[field:title /]</a>[field:pagestyle runphp='yes'] @me = (@me==3 ? '</li>' : ''); [/field:pagestyle]{/dede:field}二、高级用法:1、dede后台->系统->系统设置->系统基本参数->其它选项->把“模板引擎禁用标签”中的"php"标签去掉,保存2、使用:{dede:php}echo 'php';{/dede:php} {dede:php}$result = mysql_query("select * from bbs_forum_forum t1 left join bbs_forum_forumfield t2 on t1.fid=t2.fid where status=1 andtype='forum' order by t1.displayorder asc");while($row = mysql_fetch_assoc($result)){ echo '<table cellpadding="0" cellspacing="0" width="100%" border="0" class="pbw_bbsTable">'; echo '<tr>'; echo '<td width="64">'; echo '<a href="/bbs/forum.php?mod=forumdisplay&fid='.$row['fid'].'"> <img src="/bbs/data/attachment/common/'.$row['icon'].'" width="46" height="46" style="border:1px solid #000;" /></a>'; echo '</td>'; echo '<td width="465">'; echo '<div class="pbw_bbsTitle"><a href="/bbs/forum.php?mod=forumdisplay&fid='.$row['fid'].'">'.$row['name'].'</a><span>('.$row['threads'].')</span></div>'; echo '<div class="pbw_bbsBrief">'.$row['description'].'</div>'; echo '<div style="color:red;">'.$row['rules'].'</div>'; $moderators = explode(" ", $row['moderators']); $moderators = implode(",", $moderators); echo '<div class="pbw_bbsBanzhu">版主:'.$moderators.'</div>'; echo '</td>'; echo '<td width="90"> </td>'; echo '<td width="120" align="center">'; echo $row['threads'].'/'.$row['posts']; echo '</td>'; echo '<td>'; $lastpost = explode(" ", $row['lastpost']); echo '<a href="/bbs/forum.php?mod=viewthread&tid='.$lastpost[0].'#lastpost">'.$lastpost[1].'</a> (<a href="/bbs/home.php?mod=space&username='.$lastpost[3].'" style="color:#369">'.$lastpost[3].'</a>)<br />'; echo date("Y-m-d H:i:s", $lastpost[2]); echo '</td>'; echo '</tr>'; echo '</table>';}{/dede:php}
嘻嘻 这个 不难 但很难说 只能给你个思路ODBC odbc_connect() 连接方法
谢谢您的回答,我想问一下,查出来的结果放到哪?怎么遍历查询结果
odbc有一个完整的支持的,请参见手册。比如返回的依然是资源句柄
可以用while 如以下是我用odbc来连接access的例子,你可以看一下。
$db_host = "127.0.0.1"; $db_user = "sa"; $db_pass = "887799"; $mdbFilename ="C:\Program Files\Microsoft SQL Server\access\eurovmy@2012.mdb"; $dsn = "DRIVER={Microsoft Access Driver (*.mdb)};" . "Dbq=$mdbFilename"; $handle=odbc_connect($dsn, $db_user, $db_pass); // odbc_exec($handle,"use my_database"); $sql ="select * from KS_admin"; $result = odbc_exec($handle,$sql); $arr=array(); while($r = odbc_fetch_array($result)){ $arr[] = $r; } var_dump($arr); 最后提醒一句,你要正确的配置DSN.
/*********************************************************发送trackback程序参数,主机地址,标题,这篇文章的地址,内容,站点名称*********************************************************/function sendTrackback($host,$title,$url,$excerpt,$blog_name) { $buf=""; $host = str_replace('http://', '', $host); $path = explode('/', $host); $host = $path[0]; $host_array=explode(':', $host); $host=$host_array[0]; if(empty($host_array[1])){ $port=80; }else{ $port=$host_array[1]; } unset($path[0]); $path = '/' . implode('/', $path); $excerpt = cn_substr($excerpt,252); $fp = @fsockopen($host, $port, $errno, $errstr, 30); if(!$fp) { Return false; } $query = 'title=' . rawurlencode($title); $query .= '&url=' . rawurlencode($url); $query .= '&excerpt=' . rawurlencode($excerpt); $query .= '&blog_name=' . rawurlencode($blog_name); $out = 'POST ' . $path . ' HTTP/1.1' . "\r\n"; $out .= 'Host: ' . $host . "\r\n"; $out .= 'Connection: close' . "\r\n"; $out .= 'Content-Length: ' . strlen($query) . "\r\n"; $out .= 'Content-Type: application/x-www-form-urlencoded; charset=iso-8859-1' . "\r\n\r\n"; $out .= $query . "\r\n"; fwrite($fp, $out); while (!feof($fp)) $buf .= fgets($fp,128); fclose($fp); $arr=explode("<error>",$buf); $return_num=intval(substr($arr[1], 0, 1)); if($return_num==0){ return "发送成功 "; }else{ $arr2=explode("message",$buf); $return_msg=str_replace(">", "", $arr2[1]); $return_msg=str_replace("</", "", $return_msg); return "发送失败:".$return_msg; }}
打开chm文档看最右侧,选项---Internet选项---常规---辅助功能,忽略网页上的指定字号前打钩,就可以看示例了
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"</head> <div id='text'>CMS发布系统<br/>version 1.0</br></br><!--{$today}--></div></div> </div> </a> </a> </a> </a> </div> </div> <div class="body"> <div class="cat-image"><img src="<!--{$row.catImage}-->" alt="<!--{$row.catTitle}-->" /></div> <div class="article-list"> <ul> <!--{foreach from = $row.artList item=row1}--> <li>·<a href="<!--{$row1.linkPath}-->"><!--{$row1.title}--></a></li> <!--{/foreach}--> </ul> </div> <div class="clear-both"></div> </div> <div class="bottom"></div> </div> <!--{/foreach}--> <!--{/if}--> </div> <div class="clear-both"></div></div><!-- 版权部分 --><div id="foot"> <div id="adv"> <a href="admin/">管理登录</a> </div> <div id="sql"> Query Times: <!--{$queryTime}--> <br />Execute Time: <!--{$executeTime}--> ms </div></div></body></html>
===代表比较对象的类型也要一致。==表示只要值相等就满足条件php> var_dump(1=="1") bool(true) php> var_dump(1==="1") bool(false)
强制类型转换一般分为隐式和显式的,元数据 显式 隐式$n = 100; (string)$n $n . ''$n = '100'; (int)$n $n + 0;$b = 1; (boolean)$b !$b.......