常见HTTP状态代码

一些常见的状态码为:

200 – 服务器成功返回网页
404 – 请求的网页不存在
503 – 服务不可用

详细分解:

1xx(临时响应)
表示临时响应并需要请求者继续执行操作的状态代码。

代码   说明
100   (继续) 请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
101   (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 

2xx (成功)
表示成功处理了请求的状态代码。

代码   说明
200   (成功)  服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。
201   (已创建)  请求成功并且服务器创建了新的资源。
202   (已接受)  服务器已接受请求,但尚未处理。
203   (非授权信息)  服务器已成功处理了请求,但返回的信息可能来自另一来源。
204   (无内容)  服务器成功处理了请求,但没有返回任何内容。
205   (重置内容) 服务器成功处理了请求,但没有返回任何内容。
206   (部分内容)  服务器成功处理了部分 GET 请求。 

3xx (重定向)
表示要完成请求,需要进一步操作。 通常,这些状态代码用来重定向。

代码   说明
300   (多种选择)  针对请求,服务器可执行多种操作。 服务器可根据请求者 (user agent) 选择一项操作,或提供操作列表供请求者选择。
301   (永久移动)  请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
302   (临时移动)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
303   (查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
304   (未修改) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容。
305   (使用代理) 请求者只能使用代理访问请求的网页。 如果服务器返回此响应,还表示请求者应使用代理。
307   (临时重定向)  服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。 

4xx(请求错误)
这些状态代码表示请求可能出错,妨碍了服务器的处理。

代码   说明
400   (错误请求) 服务器不理解请求的语法。
401   (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。
403   (禁止) 服务器拒绝请求。
404   (未找到) 服务器找不到请求的网页。
405   (方法禁用) 禁用请求中指定的方法。
406   (不接受) 无法使用请求的内容特性响应请求的网页。
407   (需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
408   (请求超时)  服务器等候请求时发生超时。
409   (冲突)  服务器在完成请求时发生冲突。 服务器必须在响应中包含有关冲突的信息。
410   (已删除)  如果请求的资源已永久删除,服务器就会返回此响应。
411   (需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
412   (未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
413   (请求实体过大) 服务器无法处理请求,因为请求实体过大,超出服务器的处理能力。
414   (请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
415   (不支持的媒体类型) 请求的格式不受请求页面的支持。
416   (请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
417   (未满足期望值) 服务器未满足"期望"请求标头字段的要求。 

5xx(服务器错误)
这些状态代码表示服务器在尝试处理请求时发生内部错误。 这些错误可能是服务器本身的错误,而不是请求出错。

代码   说明
500   (服务器内部错误)  服务器遇到错误,无法完成请求。
501   (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。
502   (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
503   (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。
504   (网关超时)  服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505   (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。 

ubuntu install jdk via apt-get

sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk

Netbeans添加JQuery支持

  1. menu → Tools → Plugins → Settings
  2. 點擊 add 按鈕,加入一個新的更新來源,在 URL 部分填上 http://updates.netbeans.org/netbeans/updates/6.8/uc/m1/dev/catalog.xml.gz
  1. 加入後原來的 Plugin 數量由98增加到182,且出現 JavaScript Library: jQuery 1.3.2的選項,勾選前方的核取方塊(CheckBox),按下 Install 按鈕安裝。
  2. 再次查看 PHP Project 的 Properties,項目中增加了 JavaScript Library,在項目中選擇 add 加入 jQuery 1.3.2,在 Project 多了 resource 資料夾並包含了 jQuery 1.3.2。

摘自:  http://jeffyon.blogspot.com/2010/03/netbeans-68jquery-plugin.html

昨日爬香炉峰

6点06起床,7点50左右到山底,11点下到山脚

上去的时候从北门,上香炉峰,下来的时候从东门下来的,563可以到海淀公园和万泉河桥南

香山不错,很安静,有些路有些错综复杂,下次有时间再去爬

海拔557米,约2300阶

年票才100

流水账,over

实拍某贱女主持围攻兽兽

贱女围攻兽兽

贱女主持,去死吧

html,onload,启动,焦点,focus

<html>
<head>
</head>
<body ONLOAD=”window.document.forms[0].site.focus();”>
<div align=”center”>
<form action=”" method=”post” name=”form1″>
<br><br><br><br><br><br>
<input type=”text” size=”35″ name=”site”>
<input type=”submit” name=”submit”>
</form>
</div>
</body>
</html>

PHP 15个正则表达式 匹配

对于开发人员来说,正则表达式是一个非常有用的功能。它提供了 查找,匹配,替换 句子,单词,或者其他格式的字符串。在这篇文章里,我已经编写了15个贼拉有用的正则表达式,WEB开发人员都应该将它收藏到自己的工具包。 开始使用正则表达式 对初学者来说,正则 看起来很难学习和使用。事实上他们并非你想想的那么难,在我们深入掌握正则之前,先迅速看看这些入门基础: 正则表达式语法 正则表达式 将会匹配 foo ——————字符串“foo” ^foo ——————以“foo”开头的字符串 foo$ ——————以“foo”结尾的字符串 ^foo$ ——————“foo”开头和结尾,(只能是他自己 ) [abc]—————— a 或者b 或者c [a-z] —————— a到z之间任意字母 [^A-Z]——————除了 A-Z这些之外的字符 (gif|jpg)——————“gif”或者 “jpeg” [a-z]+—————— 一个或者多个 a到z之间任意字母 [0-9.-]—————— 0-9之间任意数字,或者 点 或者 横线 ^[a-zA-Z0-9_]{1,}$—————— 至少一个字母数字下划线 ([wx])([yz])—————— wy或wz或xy或xz [^A-Za-z0-9]—————— 字符数字之外的字符 ([A-Z]{3}|[0-9]{4})—————— 三个大写字母或者4个数字 php 正则表达式的方法 方法描述: preg_match() 该函数preg_match按照模式去匹配字符串,如果符合则返回TRUE,否则返回FALSE preg_match_all() 该函数 preg_match_all() 在字符串中匹配出全部符合模式的字符串. preg_replace() 该函数与ereg_replace()类似,不同在于它利用匹配的模式去替换输入的参数 preg_split() 该函数与split()类似 不同在于它将与正则表达式匹配的字符当做分割的模式 preg_grep() 该函数preg_grep() 匹配数组中全部元素,返回符合正则表达式的元素组成的数组 preg_quote() 转义正则表达式字符 验证域名 检验一个字符串是否是个有效域名. $url = “http://komunitasweb.com/”; if (preg_match(‘/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i’, $url)) { echo “Your url is ok.”; } else { echo “Wrong url.”; } 从一个字符串中 突出某个单词 这是一个非常有用的在一个字符串中匹配出某个单词 并且突出它,非常有效的搜索结果 $text = “Sample sentence from KomunitasWeb, regex has become popular in web programming. Now we learn regex. According to wikipedia, Regular expressions (abbreviated as regex or regexp, with plural forms regexes, regexps, or regexen) are written in a formal language that can be interpreted by a regular expression processor”; $text = preg_replace(“/b(regex)b/i”, ‘1‘, $text); echo $text; 突出查询结果在你的 WordPress 博客里 就像刚才我说的,上面的那段代码可以很方便的搜索出结果,而这里是一个更好的方式去执行搜索在某个WordPress的博客上 打开你的文件 search.php ,然后找到 方法 the_title() 然后用下面代码替换掉它 echo $title;Now, just before the modified line, add this code: \0′, $title); ?>Save the search.php file and open style.css. Append the following line to it: strong.search-excerpt { background: yellow; } 从HTML文档中获得全部图片 如果你曾经希望去获得某个网页上的全部图片,这段代码就是你需要的,你可以轻松的建立一个图片下载机器人 $images = array(); preg_match_all(‘/(img|src)=(“|’)[^"'>]+/i’, $data, $media); unset($data); $data=preg_replace(‘/(img|src)(“|’|=”|=’)(.*)/i’,”$3″,$media[0]); foreach($data as $url) { $info = pathinfo($url); if (isset($info['extension'])) { if (($info['extension'] == ‘jpg’) || ($info['extension'] == ‘jpeg’) || ($info['extension'] == ‘gif’) || ($info['extension'] == ‘png’)) array_push($images, $url); } } 删除重复字母 经常重复输入字母? 这个表达式正适合. $text = preg_replace(“/s(w+s)1/i”, “$1″, $text); 删除重复的标点 功能同上,但只是面对标点,白白重复的逗号 $text = preg_replace(“/.+/i”, “.”, $text); 匹配一个XML或者HTML标签 这个简单的函数有两个参数:第一个是你要匹配的标签,第二个是包含XML或HTML的变量,再强调下,这个真的很强大 function get_tag( $tag, $xml ) { $tag = preg_quote($tag); preg_match_all(‘{<’.$tag.’[^>]*>(.*?)

.’}', $xml, $matches, PREG_PATTERN_ORDER); return $matches[1]; } 匹配具有属性值的XML或者HTML标签 这个功能和上面的非常相似,但是它允许你匹配的标签内部有属性值,例如你可以轻松匹配

function get_tag( $attr, $value, $xml, $tag=null ) { if( is_null($tag) ) $tag = ‘\w+’; else $tag = preg_quote($tag); $attr = preg_quote($attr); $value = preg_quote($value); $tag_regex = “/<(“.$tag.”)[^>]*$attr\s*=\s*”. “(['\"])$value\\2[^>]*>(.*?)<\/\\1>/” preg_match_all($tag_regex, $xml, $matches, PREG_PATTERN_ORDER); return $matches[3]; } 匹配十六进制颜色值 web开发者的另一个有趣的工具,它允许你匹配和验证十六进制颜色值. $string = “#555555″; if (preg_match(‘/^#(?:(?:[a-fd]{3}){1,2})$/i’, $string)) { echo “example 6 successful.”; } 查找页面 title 这段代码方便查找和打印 网页 和 之间的内容 $fp = fopen(“http://www.catswhocode.com/blog”,”r”); while (!feof($fp) ){ $page .= fgets($fp, 4096); } $titre = eregi(“(.*)”,$page,$regs); echo $regs[1]; fclose($fp); 解释 Apache 日志 大多数网站使用的都是著名的Apache服务器,如果你的网站也是,那么使用PHP正则表达式解析 apache 服务器日志 怎么样? //Logs: Apache web server //Successful hits to HTML files only. Useful for counting the number of page views. ‘^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+”(?:GET|POST|HEAD) ((?#file)/[^ ?"]+?.html?)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+”s+(?#status code)200s+((?#bytes transferred)[-0-9]+)s+”((?#referrer)[^"]*)”s+”((?#user agent)[^"]*)”$’ //Logs: Apache web server //404 errors only ‘^((?#client IP or domain name)S+)s+((?#basic authentication)S+s+S+)s+[((?#date and time)[^]]+)]s+”(?:GET|POST|HEAD) ((?#file)[^ ?"]+)??((?#parameters)[^ ?"]+)? HTTP/[0-9.]+”s+(?#status code)404s+((?#bytes transferred)[-0-9]+)s+”((?#referrer)[^"]*)”s+”((?#user agent)[^"]*)”$’ 使用智能引号代替双引号 如果你是一个印刷爱好者,你将喜欢这个允许用智能引号代替双引号的正则表达式,这个正则被WORDPRESS在其内容上使用 preg_replace(‘B”b([^"x84x93x94rn]+)b”B’, ‘?1?’, $text); 检验密码的复杂度 这个正则表达式将检测输入的内容是否包含6个或更多字母,数字,下划线和连字符. 输入必须包含至少一个大写字母,一个小写字母和一个数字 ‘A(?=[-_a-zA-Z0-9]*?[A-Z])(?=[-_a-zA-Z0-9]*?[a-z])(?=[-_a-zA-Z0-9]*?[0-9])[-_a-zA-Z0-9]{6,}z’ WordPress: 使用正则获得 帖子上的图片 我知道很多人是WORDPRESS的使用者,你可能会喜欢并且愿意使用 那些从帖子的内容检索下来的图像代码。使用这个代码在你的BLOG只需要复制下面代码到你的某个文件里 post_content; $szSearchPattern = ‘~]* />~’; // Run preg_match_all to grab all the images and save the results in $aPics preg_match_all( $szSearchPattern, $szPostContent, $aPics ); // Check to see if we have at least 1 image $iNumberOfPics = count($aPics[0]); if ( $iNumberOfPics > 0 ) { // Now here you would do whatever you need to do with the images // For this example the images are just displayed for ( $i=0; $i < $iNumberOfPics ; $i++ ) { echo $aPics[0][$i]; }; }; endwhile; endif; ?> 自动生成笑脸图案 被WordPress使用的另一个方法, 这段代码可使你把图像自动更换一个笑脸符号 $texte=’A text with a smiley ‘; echo str_replace(‘:-)’,’‘,$texte);

PHP识别字符集并且自动转换字符集的函数

ol class=”dp-j” start=”1″lihttp://hudeyong926.javaeye.com/blog/622515/li/ol2010年8月6日1:28:18nbsp; br /
测试可用br /


 function safeEncoding($string,$outEncoding ='UTF-8')
 {
     $encoding = "UTF-8";
     for($i=0;$i<strlen($string);$i++)
     {
         if(ord($string{$i})<128)
             continue;  

         if((ord($string{$i})&224)==224)
         {
             //第一个字节判断通过
             $char = $string{++$i};
             if((ord($char)&128)==128)
             {
                 //第二个字节判断通过
                 $char = $string{++$i};
                 if((ord($char)&128)==128)
                 {
                     $encoding = "UTF-8";
                     break;
                 }
             }
         }
         if((ord($string{$i})&192)==192)
         {
             //第一个字节判断通过
             $char = $string{++$i};
             if((ord($char)&128)==128)
             {
                 // 第二个字节判断通过
                 $encoding = "GB2312";
                 break;
             }
         }
     }  

     if(strtoupper($encoding) == strtoupper($outEncoding))
         return $string;
     else
         return iconv($encoding,$outEncoding,$string);
 }

Fleaphp函数用法举例

h2 class=”titName SG_txta” id=”t_484583ca0100j7md”Fleaphp函数用法举例/h2span class=”img2″/spanspan class=”time SG_txtc”/spandiv class=”turnBoxzz”a href=”javascript:;” id=”quote_set_sign2″ onclick=”scope.articel_quote_alert amp;amp; scope.articel_quote_alert(’484583ca0100j7md’);return false;” class=”SG_aBtn SG_aBtn_ico SG_turn”citebr /
/cite/a/div div class=”articalTag” id=”sina_keyword_ad_area” table tbodytr td class=”blog_tag”br /
/td td class=”blog_class”br /
/td /tr /tbody/table /div h3nbsp;wbr/h3 1。FLEA_Db_TableDataGateway::update ()用法:br /
例如:修改一条 uid=22 的记录, name字段改成”11″, pass字段改成”22″,就要这样写:br /
$data = array(‘uid’=gt;22,’name’=gt;11,’pass’=gt;22);br /
$table-gt;update($data);br /
br /
2。font face=”NSimsun”FLEA_Db_TableDataGateway::updateByConditions()用法:br /
例如:更新所有 level_ix = 3 的记录,并且把这些记录的特定字段(由 $row 确定)都更新为指定的值。br /
/fontfont face=”NSimsun”$row = array(br /
nbsp;wbr nbsp;wbr字段 =gt; 字段值br /
nbsp;wbr nbsp;wbr字段 =gt; 字段值br /
nbsp;wbr nbsp;wbr字段 =gt; 字段值br /
nbsp;wbr nbsp;wbr字段 =gt; 字段值br /
);br /
br /
$conditions = array(‘level_ix’ =gt; 3);br /
$table-gt;updateByConditions($conditions, $row);/fontbr /
br /
font face=”NSimsun”3。FLEA_Db_TableDataGateway::updateField()用途:更新记录的指定字段,返回更新的记录总数br /
/fontfont face=”NSimsun”例如:以查找满足$conditions的条件,修改其中字段为class_id的值为$targetId.br /
/fontfont face=”NSimsun”$sourceId = $_POST['source'];br /
$targetId = $_POST['target'];br /
$conditions = array(‘class_id’ =gt; $sourceId);br /
$table-gt;updateField($conditions,’class_id’,$targetId);/fontbr /
br /
4。FLEA_Db_TableDataGateway::updateRowset ()用途:更新记录集(多行记录)br /
用法和update ()类似,只不过是修改多条记录:br /
例如:$data =array(array(‘id’=gt;’2′,’name’=gt;’111′,’job’=gt;’111′),array(‘id’=gt;’3′,’name’=gt;’222′,’job’=gt;’222′));br /
nbsp;divwbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbr $arr=$this-gt;_test-gt;updateRowset($data);想必大家能看明白吧…呵呵。。。br /
一定注意:$data 一定要是二维的,即使用updateRowset ()修改一条记录也要这样写:br /
nbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbr $data=array(array(‘id’=gt;’2′,’name’=gt;’111′,’job’=gt;’111′));br /
说得清不清楚啊?呵呵br /
br /
5。FLEA_Db_TableDataGateway::create ()用途:插入一条新记录,返回新记录的主键值br /
例如:$data = array(array(‘uid’=gt;22,’name’=gt;11,’pass’=gt;22),array(‘uid’=gt;23,’name’=gt;12,’pass’=gt;23));br /
nbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbrnbsp;wbr$table-gt;create($data);br /
br /
6.FLEA_Db_TableDataGateway::createRowset()插入多行记录,返回包含所有新记录主键值的数组br /
例如:$data = array(array(‘uid’=gt;22,’name’=gt;11,’pass’=gt;22),array(‘uid’=gt;23,’name’=gt;12,’pass’=gt;23));br /
nbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbrnbsp;wbr$table-gt;createRowset($data);br /
br /
7.FLEA_Db_TableDataGateway::remove () 删除一条记录,条件必须为主键br /
例如:remove(array(“id”=gt;”2″));br /
br /
br /
8。FLEA_Db_TableDataGateway::removeByConditions ()看名知义,当然是删除符合条件的记录喽br /
正常情况下和remove()的条件可以通和,如果对有多个主键的表进行删除操作:br /
conditions = array(br /
nbsp;wbr nbsp;wbr’主键1′ =gt; xxx,br /
nbsp;wbr nbsp;wbr’主键2′ =gt; yyy,br /
nbsp;wbr nbsp;wbr’主键3′ =gt; zzz,br /
)br /
$table-gt;removeByConditions($conditions);br /
另注意一点:如果某个表有多个主键的话,那么它所对应的Model中的nbsp;wbr nbsp;wbr$primaryKey 只能设置为一个最常用的主键,不能设置为一个数组br /
br /
9。amp; FLEA_Db_TableDataGateway::findBySql ()用途:直接使用 sql 语句获取记录br /
例如: $arr=$this-gt;_test-gt;findBySql(‘SELECT * FROM newtable’);br /
br /
10。FLEA_Db_TableDataGateway::decrField ()用途:减小符合条件的记录的指定字段的值,返回更新的记录总数 (该操作不会引发任何事件,也不会处理关联数据)。br /
例如:$arr=$this-gt;_test-gt;decrField(array(‘id’=gt;’3′),’prize’,$decr = 2);br /
注意:$decr默认值为1,数字2是本人自己改的,当然你也可以改为34568了,改几就减几,明白了吧。。。br /
br /
11。FLEA_Rbac_UsersManager::updatePasswordById ()用途:直接更新密码br /
例如:把ID为1的密码设为00000br /
$arr=$this-gt;_student-gt;updatePasswordById (’1′,’000000′);br /
注意:前提是数据库中一定要有叫做Password的字段;修改后的密码是加密的。br /
br /
12。FLEA_Rbac_UsersManager::checkPassword ()用途:检查密码的明文和密文是否符合br /
例如: $user = $usersManager-gt;findByUsername(‘andy’);br /
nbsp;wbr nbsp;wbr$usersManager-gt;checkPassword(’000000′, $user[$usersManager-gt;passwordField]))br /
br /
13.FLEA_Rbac_UsersManager::encodePassword ()用途:将密码明文转换为密文br /
例如: $user = $this-gt;_student-gt;findByUsername(‘andy’);br /
nbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbr$arr=$this-gt;_student-gt;encodePassword($user[$this-gt;_student-gt;passwordField]);br /
nbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbr$this-gt;_student-gt;updatePassword($user[username],$arr);br /
注意:前提是数据库中一定要有叫做Password的字段;br /
br /
14.FLEA_Rbac_UsersManager::updatePasswordById ()用途:直接更新密码br /
nbsp;wbr nbsp;wbrnbsp;wbrnbsp;wbr这个我不说了啊,我想聪明的你一看例11就会明白了br /
br /
15。FLEA_Db_TableDataGateway::updateByConditions ()用途:更新符合条件的记录,成功返回更新的记录总数br /
例如: $condition=array(‘id’=gt;2);br /
nbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbr$row=array(‘name’=gt;’nicholas’);br /
nbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbr$this-gt;_test-gt;updateByConditions($condition,$row);br /
br /
br /
16.FLEA_Db_TableDataGateway::updateField () 用途:更新记录的指定字段,返回更新的记录总数 该操作不会引发任何事件,也不会处理关联数据。br /
例如:修改id为2的记录,把字段为name的值修改为vin就要这么写:br /
nbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbr$condition=array(‘id’=gt;2);br /
nbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbr$this-gt;_test-gt;updateField($condition,’name’,'vin’);br /
br /
17、FLEA_Db_TableDataGateway::incrField () 用途:增加符合条件的记录的指定字段的值,返回更新的记录总数br /
例如:这个也不说,去看例10吧,但要注意,例10是减,这个是加,嘿嘿。。。br /
br /
18。FLEA_Db_TableDataGateway::replaceRowset () 用途:替换记录集(多行数据),返回记录集的主键字段值,失败返回 falsebr /
nbsp;wbr nbsp;wbrnbsp;wbrnbsp;wbr$condition=array(array(‘id’=gt;2,’name’=gt;nicholas,’job’=gt;good));br /
nbsp;wbr nbsp;wbrnbsp;wbrnbsp;wbr$this-gt;_test-gt;replaceRowset($condition);br /
注意:1,假设表中有id,name,job,prize等,如果在$condition中没写prize字段,会就默认插入空,原有的数据会被清除,如不注意,也许会丢失数据 2。$condition一定是二维的br /
br /
19。FLEA_Db_TableDataGateway::removeAll ()用途:删除所有记录,用时要谨慎br /
例如:$this-gt;_test-gt;removeAll ();br /
br /
20。FLEA_Db_TableDataGateway::removeAllWithLinks ()用途:删除所有记录及关联的数据br /
注意:这个更加要慎用,所有与这个表有关联的表数据都将被删除,何谓有关联,也就是说,此表中的某个字段可能是另外一个表中的外键,此谓之有关联。br /
例如:br /
在MODEL中一个叫做com的表关联了一个叫做student的表,com表中的uid是student表中的外键,那么我们就说这两个表关联起来了,是用下面的方法关联起来的br /
class Model_com extends FLEA_Db_TableDataGatewaybr /
{br /
nbsp;wbr nbsp;wbr var $tableName = ‘newtable’;br /
nbsp;wbr nbsp;wbr var $primaryKey = ‘uid’;br /
nbsp;wbr nbsp;wbr var $hasOne=array(‘tableClass’ =gt; ‘Model_student’,br /
nbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbr’foreignKey’ =gt; ‘uid’,br /
nbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbrnbsp;wbr nbsp;wbr’mappingName’=gt;’jobs’);br /
}br /
这时,我们执行下面的语句:br /
$this-gt;_test =amp; FLEA::getSingleton(‘Model_com’);br /
$this-gt;_test-gt;removeAllWithLinks();br /
大家想会发生什么后果?答对了,com表中的所有数据和student表中的所有数据都被删除了,注意是数据被删除了,表和字段还在。知道这个函数的邪恶了吧,所以请大家慎用。。。br /
br /
21。FLEA_Db_TableDataGateway::removeByPkv (主键值) 参数是主键值,是几就写几,如:1,2,3等等。。。用途:根据主键值删除记录,首先删除关联表数据,再删除主表数据,简单的说,假如你把主表中ID为‘1’的一个条数据删除了,那么,与其关联的表中的那条ID为’1‘的条件也会被删除。br /
例如:$arr=$this-gt;_test-gt;removeByPkv (’1′);br /
br /
br /
22。FLEA_Db_TableDataGateway::removeByPkvs(主键值数组)用途:删除数组中所有主键值的记录br /
注意:参数是数组,而且不能像以往类似array(‘ID’=gt;’1′)这样写成关联数组,要这样写:array(1,2,3)br /
例如: $conditions=array(1,2,3);br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr $arr=$this-gt;_test-gt;removeByPkvs($conditions);br /
这两条语句的意思就是删除表中主键为1,2,3的记录。br /
发现一个问题:API上说:这条语句是删除数组中所有主键值的记录,该操作不会处理关联,但在实际测试的时候发现会影响关联表中的数据,关联表中的数据也一并被删除了,请大虾们解释一下,何故?br /
br /
br /
23。FLEA_Db_TableDataGateway::enableLink ()用途:启用指定关联br /
这个来自论坛廖老大答网友问,嘿嘿,当然要比鄙人解释的好,所以贴过来啦。。。br /
class Table_Posts extends FLEA_Db_TableDataGatewaybr /
{br /
nbsp;wbrnbsp;wbrnbsp;wbr ….br /
nbsp;wbrnbsp;wbr …..br /
// enableLink() 参数就是关联的 mappingNamebr /
$tablePosts-gt;enableLink(‘comments’);br /
…..br /
nbsp;wbrnbsp;wbrnbsp;wbr var $hasMany = array(br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr array(br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr ‘tableClass’ =gt; ‘Table_Comments’,br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr ‘foreignKey’ =gt; ‘post_id’,br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr ‘mappingName’ =gt; ‘comments’,br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr …..br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr ‘enabled’ =gt; false, // 这里是关键,表示默认禁用该关联br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr )br /
nbsp;wbrnbsp;wbrnbsp;wbr );br /
}上面的代码定义了一个关联,但是查询时该关联并不会启用。只有在确实需要查询关联数据时,使用br /
…..br /
// enableLink() 参数就是关联的 mappingNamebr /
$tablePosts-gt;enableLink(‘comments’);br /
…..br /
br /
br /
24。FLEA_Db_TableDataGateway::enableLinks()用途:启用所有或多个关联br /
注意参数是个数组,这么写:br /
$this-gt;_test-gt;enbleLinks(array(‘jobs’,’teacherjob’));br /
这样就可以启用多个关联了,呵呵br /
br /
br /
25。disableLink ()用途:禁用指定关联br /
请大家参照例23,用法都是一样的,只是作用相反br /
br /
br /
26。disableLinks ()用途:禁用所有或多个关联br /
这个请大家参照例24,用法一样br /
br /
br /
27.FLEA_Db_TableDataGateway::clearLinks()用途:清除所有关联br /
例如:$this-gt;_test-gt;clearLinks ();br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr $arr=$this-gt;_test-gt;findAll();br /
这时,与_test有关联的表中的数据就不会被显示出来了br /
br /
br /
28。FLEA_Db_TableDataGateway::relink ()用途:重建所有关联br /
给大家举个例子就全明白了:br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr $this-gt;_test-gt;clearLinks ();br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr $this-gt;_test-gt;relink ();br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr $arr=$this-gt;_test-gt;findAll();br /
注意例28和例27的区别,多一句 $this-gt;_test-gt;relink ();虽然前一句cldarLinks清除了所有关联,但是这句又把清除的关联又得新连接起来了,呵。。。br /
这回关联表中的数据又都显示出来了,嘿嘿,明白了吧br /
br /
br /
29.amp; FLEA_Db_TableDataGateway::getLink ()br /
测试出来结果了,但还是不明白他的作用是什么,我会在论坛上发贴寻问,弄明白再贴上br /
br /
br /
30.amp; FLEA_Db_TableDataGateway::getLinkTable ()br /
(同上)br /
br /
br /
31.amp; FLEA_Db_TableDataGateway::existsLink (paddingname) 用途:检查指定名字的关联是否存在br /
例如:class Model_com extends FLEA_Db_TableDataGatewaybr /
{br /
nbsp;wbrnbsp;wbrnbsp;wbr var $tableName = ‘newtable’;br /
nbsp;wbrnbsp;wbrnbsp;wbr var $primaryKey = ‘uid’;br /
nbsp;wbrnbsp;wbrnbsp;wbr var $hasMany=array(br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr array(‘tableClass’ =gt; ‘Model_student’,br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr ‘foreignKey’ =gt; ‘uid’,br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr ‘mappingName’=gt;’jobs’,br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr //’enabled’ =gt; falsebr /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr ),br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrbr /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr array(‘tableClass’ =gt; ‘Model_teacher’,br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr ‘foreignKey’ =gt; ‘uid’,br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr ‘mappingName’=gt;’teacherjob’,br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr //’enabled’ =gt; falsebr /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr )br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr );br /
}br /
这是在MODEL中定义的,关联了两个表,paddingname分别是jobs,teacherjob,大家看好,如果我在控制器中这么写:br /
$arr=$this-gt;_test-gt;existsLink (‘teacherjob’);br /
dump($arr);br /
就会在浏览器中输出”1″,br /
如果这么写br /
$arr=$this-gt;_test-gt;existsLink (‘teacher’);br /
dump($arr);br /
就会没有输出,看明白什么意思了吧,也就是说没有这个字段就不会有输出,有这个paddingname就会输出”1″啦,呵。。。br /
br /
br /
32。FLEA_Db_TableDataGateway::createLink ()用途:建立关联,并且返回新建立的关联对象br /
这个不班门弄斧了,这个是论坛上的,一看就明白:br /
$link = array(br /
nbsp;wbrnbsp;wbrnbsp;wbr ‘tableClass’ =gt; ‘Table_Test’,br /
nbsp;wbrnbsp;wbrnbsp;wbr ‘foreignKey’ =gt; ‘test_id’,br /
nbsp;wbrnbsp;wbrnbsp;wbr ‘mappingName’ =gt; ‘test’,br /
);br /
br /
$table-gt;createLink($link, HAS_MANY);br /
br /
br /
33.assembleRecursionRowset() 和 assembleRecursionRow()br /
例如:廖老大发的,啥也不说了,无条件接受吧,嘿嘿。。。br /
http://www.fleaphp.org/bbs/viewthread.php?tid=1878amp;highlight=assembleRecursionRowbr /
br /
34。amp; FLEA_Db_TableDataGateway::findByField ()br /
例如:例如findByField(‘sno’,’020497′),其实就是和find(“sno=’020497′”)是一样的效果br /
br /
br /
35。url($ controllerName = null, $actionName = null, $params = null,$anchor = null,$ options = null) 用途:很大!br /
这部分选自API,有例子,很好:br /
构造 urlbr /
构造 url 需要提供两个参数:控制器名称和控制器动作名。如果省略这两个参数或者其中一个。br /
则 url() 函数会使用应用程序设置中的确定的默认控制名称和默认控制器动作名。br /
url() 会根据应用程序设置 urlMode 生成不同的 URL 地址:br /
URL_STANDARD – 标准模式(默认),例如 index.php?url=Loginamp;action=Rejectamp;id=1br /
URL_PATHINFO – PATHINFO 模式,例如 index.php/Login/Reject/id/1br /
URL_REWRITE – URL 重写模式,例如 /Login/Reject/id/1br /
生成的 url 地址,还要受下列应用程序设置的影响:br /
controllerAccessorbr /
defaultControllerbr /
actionAccessorbr /
defaultActionbr /
urlModebr /
urlLowerCharbr /
用法: $url = url(‘Login’, ‘checkUser’); // $url 现在为 ?controller=Loginamp;action=checkUserbr /
$url = url(‘Login’, ‘checkUser’, array(‘username’ =gt; ‘dualface’)); // $url 现在为 controller=Loginamp;action=checkUseramp;username=dualfacebr /
$url = url(‘Article’, ‘View’, array(‘id’ =gt; 1′), ‘details’); // $url 现在为 controller=Articleamp;action=Viewamp;id=1detailsbr /
br /
br /
36.redirect()br /
这个函数很好,不过鄙人只用了他的基本用法br /
例如:redirect(../index.php);回到入口文件;br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr redirect(url(‘default’,'zhx’));br /
就是这么用的,反正好用,呵呵…还有一个常用的就是,如果再加入个参数,就可以实现几秒后跳转,就是在URL()的后面加入一个数子就行,大家知道有这个功能会用就行了br /
br /
br /
37。FLEA::loadFile ($filename,$loadonce=false)br /
用途:载入指定的文件br /
例如: FLEA::loadFile (‘Table_Posts.php’); // 等同于 include ‘Table/Posts.php’;br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr $loadOnce 指定为 true 时,FLEAloadFile() 等同于 require_oncebr /
br /
br /
38.FLEA_Helper_ImgCode::imagebr /
下面给大家看展示一个很常用的函数,生成验证码的image(),下面看例子:br /
lt;?phpbr /
FLEA::loadClass(‘FLEA_Helper_ImgCode’);br /
class Model_code extends FLEA_Helper_ImgCodebr /
{br /
br /
}br /
?gt;br /
我先在MODEL中创建了一个类,这个类没有内容,没有内容为什么还要创建呢,这是因为要让这个函数继承FLEA_Helper_ImgCode 的强大功能啊,image()这个函数就在这个类里面.好了下面我们在控制器中写下面的语句:br /
$this-gt;imgcode =amp; FLEA::getSingleton(‘Model_code’);br /
$this-gt;imgcode-gt;image();br /
好了,这时运行就会在浏览器中输入随机的四位验证码了,当然四们是默认的,你也可以设为五位,六位了.请看参数依次为:br /
int $type 验证码包含的字符类型,0 – 数字、1 – 字母、其他值 – 数字和字母br /
int $length 验证码长度br /
int $leftime 验证码有效时间(秒)br /
array $options 附加选项,可以指定字体、宽度和高度等参数br /
br /
br /
39.FLEA_Helper_ImgCode::_hex2rgb () 用途:将 16 进制颜色值转换为 rgb 值br /
这个函数可能不常用,但看到了也一起写上来了br /
用时也要创建一个例38那样的空类继承FLEA_Helper_ImgCodebr /
然后在控制器中这样写:br /
例如$this-gt;imgcode =amp; FLEA::getSingleton(‘Model_code’);br /
nbsp;wbrnbsp;wbrnbsp;wbrnbsp;wbr $this-gt;imgcode-gt;_hex2rgb(‘ff00ff’);br /
这时就会把16进制的ff00ff的颜色值转换为RGB值勤了br /
注意:因为RGB值是三个三位的,所以返回的是一个数组要用定义的数级变量接收br /
br /
br /
40.microtime_float()这个很常用,但很简单,写在这里的目的是为了让大家了解FLEAPHP中的这个microtime_float()和PHP5中mktime()的区别:br /
mktime()返回的包含了从 Unix 纪元(January 1 1970 00:00:00 GMT)到给定时间的秒数,而microtime_float()返回的是毫秒数,返回值是浮点数./div

汉字转拼音 函数 PHP

用这个函数,另外从DEDE文件夹里面搜pinyin.dat 这个文件br /
br /
function pinyin($str)br /
{br /
nbsp;nbsp;nbsp;nbsp;$pinyins = Array();br /
nbsp;nbsp;nbsp;nbsp;$restr = ”;br /
nbsp;nbsp;nbsp;nbsp;$str = trim($str);br /
nbsp;nbsp;nbsp;nbsp;$slen = strlen($str);br /
nbsp;nbsp;nbsp;nbsp;if($slenlt;2)br /
nbsp;nbsp;nbsp;nbsp;{br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;return $str;br /
nbsp;nbsp;nbsp;nbsp;}br /
nbsp;nbsp;nbsp;nbsp;if(count($pinyins)==0)br /
nbsp;nbsp;nbsp;nbsp;{br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;$fp = fopen(‘./data/pinyin.dat’,'r’);br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;while(!feof($fp))br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;{br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;$line = trim(fgets($fp));br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;$pinyins[$line[0].$line[1]] = substr($line,3,strlen($line)-3);br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;fclose($fp);br /
nbsp;nbsp;nbsp;nbsp;}br /
nbsp;nbsp;nbsp;nbsp;for($i=0;$ilt;$slen;$i++)br /
nbsp;nbsp;nbsp;nbsp;{br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if(ord($str[$i])gt;0×80)br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;{br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;$c = $str[$i].$str[$i+1];br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;$i++;br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;if(isset($pinyins[$c]))br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;{br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;$restr .= $pinyins[$c];br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}elsebr /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;{br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;$restr .= “_”;br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}else if( eregi(“[a-z0-9]“,$str[$i]) )br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;{br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;$restr .= $str[$i];br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;elsebr /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;{br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;$restr .= “_”;br /
nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;}br /
nbsp;nbsp;nbsp;nbsp;}br /
nbsp;nbsp;nbsp;nbsp;return $restr;br /
}