分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

php 实战常用代码示例

发布时间:2023-09-06 01:53责任编辑:胡小海关键词:暂无标签

1 依次输出一数组。每输入3个换一行。

 //讲个小细节,有人说 $i< sizeof($len)  每次循环时都要去计算下数组长度,是否很浪费性能。  -----回答: 1 你观察很细。 2 现在的解释器比较智能,这个问题会被自动优化处理。

for($i ?= 0; $i<sizeof($len); $i++){ ????if( $i && $i%3==0) echo "<br>"; ??echo $arr[$i];}

 2 字符串不允许出现特殊字符。

 ???????$chinese= "\x{4e00}-\x{9fa5}";//中文匹配 ???????$pattern="/^[a-zA-Z0-9($chinese)]+$/u";//加上英文、数字匹配 ???????if(!preg_match($pattern,$nick_name)) { ???????????????exit("不允许特殊字符"); ???????}

3 支付utf-8 的 strlen 和 substr 函数。 (求utf-8 字符串长度,求utf-8 的子字符串 ) 

 ??//utf-8 求utf-8 字符串长度 ??function ?strlen_utf8($str) ??{ ???????$i = 0; ???????$count = 0; ???????$len = strlen($str); ???????while ($i < $len) { ???????????$chr = ord($str[$i]); ???????????$count++; ???????????$i++; ???????????if ($i >= $len) ???????????????break; ???????????if ($chr & 0x80) { ???????????????$chr <<= 1; ???????????????while ($chr & 0x80) { ???????????????????$i++; ???????????????????$chr <<= 1; ???????????????} ???????????} ???????} ???????return $count; ???} ??//求utf-8 子字符串。 ??????function ?subStringUtf8($str, $start, $lenth) { ???????$len = strlen($str); ???????$r = array(); ???????$n = 0; ???????$m = 0; ???????for ($i = 0; $i < $len; $i++) { ???????????$x = substr($str, $i, 1); ???????????$a = base_convert(ord($x), 10, 2); ???????????$a = substr(‘00000000‘ . $a, -8); ???????????if ($n < $start) { ???????????????if (substr($a, 0, 1) == 0) { ???????????????} elseif (substr($a, 0, 3) == 110) { ???????????????????$i += 1; ???????????????} elseif (substr($a, 0, 4) == 1110) { ???????????????????$i += 2; ???????????????} ???????????????$n++; ???????????} else { ???????????????if (substr($a, 0, 1) == 0) { ???????????????????$r[] = substr($str, $i, 1); ???????????????} elseif (substr($a, 0, 3) == 110) { ???????????????????$r[] = substr($str, $i, 2); ???????????????????$i += 1; ???????????????} elseif (substr($a, 0, 4) == 1110) { ???????????????????$r[] = substr($str, $i, 3); ???????????????????$i += 2; ???????????????} else { ???????????????????$r[] = ‘‘; ???????????????} ???????????????if (++$m >= $lenth) { ???????????????????break; ???????????????} ???????????} ???????} ???????return join("", $r); ???} ???

4 小数位减法时,容易丢失精度,使用数学函数。

$sum = ?bcadd($a , $b , 4); ?// a+b 保留4位小数。$diff ?= bcsub( $a , $b ?, 4); // a- b 保留4位小数。$mul = bcmul($a , $b , 4); ???//a*b 保留4位小数。$div = bcdiv($a , $b , 4); ???//a/b 保留4位小数 ?b 不能为0.

5 使用事务。(不同框架代码不一样,这里以Yii 为例)

 $trans = Yii::app()->db->beginTransaction(); ?//创建事务。 $trans->commit(); ??//事务提交 $trans->rollback(); ??//事务回滚

6 异常处理。 (生产环境中,不希望对外暴露错误,以及程序执行意外时,数据库回滚处理。) 

 ??????try { ???????????$trans = Yii::app()->db->beginTransaction(); ???????????//... 中间的执行代码 ???????????$trans->commit(); ?//事务提交 ???????} catch (Exception $e) { ???????????log($e->getMessage()); ?//日志记录异常信息 ???????????$trans->rollback(); ?//事务回滚 ???????}

php 实战常用代码示例

原文地址:https://www.cnblogs.com/babytuo/p/8986400.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved