php 零点累积

it2022-05-09  27

 

获取url中请求参数

function getQueryParams($url) { $data = parse_url($url); $params = array(); $queryArr = explode('&', $data['query']); $queryArr = array_filter($queryArr); foreach ($queryArr as $value) { list($key, $val) = explode('=', $value); $params[$key] = $val; } return $params; }

 

php判断是否含中文

1.正则表达式大全

\x80-\xff 英文字符

if (preg_match("/[\x7f-\xff]/", $string)) {//兼容gb2312,utf-8echo "有中文";}else{echo "没有中文";}

2.字符串长度

$mb= mb_strlen($str,'utf-8');

     $st = strlen ( $str );      if ( $st == $mb )          return '纯英文' ;      if ( $st % $mb ==0 && $st %3==0)          return '纯汉字' ;      return '汉英混合' ; function cutstr($string, $length, $dot = ' ...') { if(strlen($string) <= $length) { return $string; } $pre = chr(1); $end = chr(1); $string = str_replace(array('&', '"', '<', '>'), array($pre.'&'.$end, $pre.'"'.$end, $pre.'<'.$end, $pre.'>'.$end), $string); $strcut = ''; if(strtolower(CHARSET) == 'utf-8') { $n = $tn = $noc = 0; while($n < strlen($string)) { $t = ord($string[$n]); if($t == 9 || $t == 10 || (32 <= $t && $t <= 126)) { $tn = 1; $n++; $noc++; } elseif(194 <= $t && $t <= 223) { $tn = 2; $n += 2; $noc += 2; } elseif(224 <= $t && $t <= 239) { $tn = 3; $n += 3; $noc += 2; } elseif(240 <= $t && $t <= 247) { $tn = 4; $n += 4; $noc += 2; } elseif(248 <= $t && $t <= 251) { $tn = 5; $n += 5; $noc += 2; } elseif($t == 252 || $t == 253) { $tn = 6; $n += 6; $noc += 2; } else { $n++; } if($noc >= $length) { break; } } if($noc > $length) { $n -= $tn; } $strcut = substr($string, 0, $n); } else { $_length = $length - 1; for($i = 0; $i < $length; $i++) { if(ord($string[$i]) <= 127) { $strcut .= $string[$i]; } else if($i < $_length) { $strcut .= $string[$i].$string[++$i]; } } } $strcut = str_replace(array($pre.'&'.$end, $pre.'"'.$end, $pre.'<'.$end, $pre.'>'.$end), array('&', '"', '<', '>'), $strcut); $pos = strrpos($strcut, chr(1)); if($pos !== false) { $strcut = substr($strcut,0,$pos); } return $strcut.$dot; } View Code

 

中文字符转换为十六进制ascii码存储

不同编码请在不同编码环境下测试获取

$str = ':'; $len = strlen($str); $asci = array(); for($i=0; $i<$len; $i++) { $asci[] = '0x'. dechex(ord($str{$i})); } $res = ''; foreach($asci as $val){ $res = $res ? $res. '.chr('. $val .')' : 'chr('. $val .')'; } echo $res; echo "\n"; echo chr(0xef).chr(0xbc).chr(0x9a);

 array_map  在一个PHP类中通过array_map函数回调内部方法又该如何做呢?

array array_map ( callback callback, array arr1 [, array ...] )array_map() 返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback 接受的参数数目应该和传递给 array_map() 函数的数组数目一致。

静态方法

$return = array_map(array(__CLASS__, '_entities'), $arg);

非静态方法

$return = array_map(array($this, 'entities'), $arg);

1,在PHP类中通过array_map函数回调内部方法时,类名称可以使用__CLASS__常量。我们强烈推荐使用此常量,因为不论你类如何修改,这能保证最终结果都是正确的。2,如果回调的方法是非静态类型,亦可通过$this伪变量指定。3,在PHP类中的array_map函数总是不能识别self伪变量。

使用多个参数:

<?php function myfunction($v1,$v2) { if ($v1===$v2) { return "same"; } return "different"; } $a1=array("Horse","Dog","Cat"); $a2=array("Cow","Dog","Rat"); print_r(array_map("myfunction",$a1,$a2)); ?>

 

Extract新用法 - SQL语句

extract(DB::fetch_first("SELECT COUNT(*) AS threadcount, SUM(t.replies)+COUNT(*) AS replycount FROM ".DB::table('forum_thread')." t, ".DB::table('forum_forum')." f WHERE f.fid='$fid' AND t.fid=f.fid AND t.displayorder>='0'"));

extract导出变量,可以直接使用 $threadcount, $replycount

 

生成xml文档,<![CDATA[ content ]]> content 有效,安全过滤,可以正常解析的xml文档

public function XmlSafeStr($str, $cdata = true) { if (!is_string($str)) return $str; if ($cdata) { $str = str_replace(']]>', '', $str); } /* invalid chars * 0x00 - 0x08 * 0x0b - 0x0c * 0x0e - 0x1f */ $str = preg_replace('/[\x00-\x08\x0b-\x0c\x0e-\x1f]/', '', $str); return $str; }

 

 百分比统计

$total = 2018673; $times = array( 1 => 1217169, 2 => 11529, 3 => 3279, 4 => 2279, 5 => 743, 6 => 314, 7 => 58, 8 => 31, 9 => 6, 10 => 2, 11 => 0, ); $tmpArr = array(); foreach($times as $num => $time) { echo 'L' . ($num-1) . "\t\t\t" . number_format(floor(($time * 10000000) /$total) * 0.00001, 5, '.', '') . '%'; echo PHP_EOL; $tmpArr[] = floor(($time * 1000) /$total) * 0.1; } echo array_sum($tmpArr);

 

 

 

转载于:https://www.cnblogs.com/bandbandme/p/3144041.html

相关资源:数据结构—成绩单生成器

最新回复(0)