货币问答:php示例

孙亮

可以列举几个简单的php递归例子吗

?

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连接数据库之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中如何使用PHP的示例代码分享

一、基本用法:{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}

推荐
不推荐
展开
收起
岳雯

PHP中如何查询oracle数据库,写出简单的例子,谢谢

嘻嘻 这个 不难  但很难说 只能给你个思路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.

推荐
不推荐
展开
收起
璇光尺

php 实现socket 一个简单的例子

/*********************************************************发送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; }}

推荐
不推荐
展开
收起
辟邪神璧

php官网下载的手册,里面的示例看不见啊?

打开chm文档看最右侧,选项---Internet选项---常规---辅助功能,忽略网页上的指定字号前打钩,就可以看示例了

推荐
不推荐
展开
收起
莉莉丝

php smarty简单的例子

<!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中列举一个"=="成立而"==="不成立的例子

===代表比较对象的类型也要一致。==表示只要值相等就满足条件php> var_dump(1=="1") bool(true) php> var_dump(1==="1") bool(false)

推荐
不推荐
展开
收起
闵洪学

PHP中如何进行数据类型转换?举出至少3个例子

强制类型转换一般分为隐式和显式的,元数据 显式 隐式$n = 100; (string)$n $n . ''$n = '100'; (int)$n $n + 0;$b = 1; (boolean)$b !$b.......

推荐
不推荐
展开
收起
查看更多答案
收起