strlen (string)
计算字符串的长度
strpos (string,find,start)
函数查找字符串在另一字符串中第一次出现的位置(区分大小写)
如果在字符串中找到匹配,该函数会返回第一个匹配的位置.
如果未找到匹配,则返回 FALSE.
- string: 规定被搜索的字符串
- find:规定要查找的字符串
- start:规定开始搜索的位置
strrpos (string,find,start)
查找字符串在另一字符串中最后一次出现的位置(区分大小写)
strripos (string,find,start)
查找字符串在另一字符串中最后一次出现的位置(不区分大小写)
stripos (string,find,start)
查找字符串在另一字符串中第一次出现的位置(不区分大小写)。
addcslashes (string,characters)
向字符串中的特定字符前添加反斜杠
向字符串中的一个范围内的字符前添加反斜杠
在指定的预定义字符前添加反斜杠。区分大小写
- string: 规定要转义的字符串
- characters:规定要转义的字符或字符范围。
$str = 'hello world!';
// 向指定的字符‘l’之前添加反斜杠
echo addcslashes($str,'l'); // he\l\lo wor\ld!
// 向指定的范围内的字符前添加反斜杠
$str = "Hello, my name is John Adams.";
echo $str;
echo "<br />";
echo addcslashes($str,'A..Z');
echo "<br />";
echo addcslashes($str,'a..z');
echo "<br />";
echo addcslashes($str,'a..h');
特定的预定义字符有:
在 PHP 中,\0、\r、\n、\t、\f 和 \v 是预定义的转义序列。
- 单引号 (’)
- 双引号 (")
- 反斜杠 ()
- 0(NULL)
- r (回车)
- n (换行)
- t (换夜)
- f (制表符)
- v (垂直制表符)
$str = "Who's John Adams?";
echo $str . " This is not safe in a database query.<br />";
echo addslashes($str) . " This is safe in a database query.";
chunk_split (string,length,end)
chunk_split() 函数把字符串分割为一连串更小的部分。
- string: 规定要分割的字符串
- length:一个数字,定义字符串块的长度。默认为 76。从1开始计算位置
- end: 一个字符串,定义在每个字符串块之后放置的内容。默认为 \r\n。
$str = 'I have a dream.';
echo chunk_split($str,2,','); // I ,ha,ve, a, d,re,am,.,
substr (string,start,length)
返回字符串的一部分。
- string: 要被截取的字符串
- start:规定开始截取的位置
- length:可选。规定要返回的字符串长度。默认是直到字符串的结尾。
str_replace (find,replace,string,count)
使用一个字符串替换字符串中的另一些字符
- find:规定要查找的值
- replace: 用此替换查找到的值
- string: 规定被搜索的字符串。
- count: 可选,一个变量,对替换数进行计数。
- 返回值:返回带有替换值的字符串或数组
随机生成字符串
function generateRandomString($length = 5) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
//rand() 函数返回随机整数。
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
echo generateRandomString(4);
汉字截取函数
utf-8、gb2312都支持的汉字截取函数。
cut_str(字符串, 截取长度, 开始长度, 编码);
编码默认为 utf-8 ,开始长度默认为 0
function cutStr($string, $sublen, $start = 0, $code = 'UTF-8'){
if($code == 'UTF-8'){
$pa = "/[x01-x7f]|[xc2-xdf][x80-xbf]|xe0[xa0-xbf][x80-xbf]|[xe1-xef][x80-xbf][x80-xbf]|xf0[x90-xbf][x80-xbf][x80-xbf]|[xf1-xf7][x80-xbf][x80-xbf][x80-xbf]/";
preg_match_all($pa, $string, $t_string);
if(count($t_string[0]) - $start > $sublen)
return join('', array_slice($t_string[0], $start, $sublen))."...";
return join('', array_slice($t_string[0], $start, $sublen));
}else{
$start = $start*2;
$sublen = $sublen*2;
$strlen = strlen($string);
$tmpstr = '';
for($i=0; $i<$strlen; $i++){
if($i>=$start && $i<($start+$sublen)){
if(ord(substr($string, $i, 1))>129){
$tmpstr.= substr($string, $i, 2);
}else{$tmpstr.= substr($string, $i, 1);
}
}if(ord(substr($string, $i, 1))>129) $i++;
}
if(strlen($tmpstr)<$strlen ) $tmpstr.= "...";
return $tmpstr;
}
}
$str = "jQuery插件实现的加载图片和页面效果";
echo cutStr($str,16);
字符串截取,支持中文和其他编码
/**
*字符串截取,支持中文和其他编码
*@param[string]$str[字符串]
*@param integer$start[起始位置]
*@param integer$length[截取长度]
*@param string$charset[字符串编码]
*@param boolean$suffix[是否有省略号]
*@return[type][description]
*/
function msubstr($str,$start=0,$length=15,$charset="utf-8",$suffix=true){
if(function_exists("mb_substr")){
return mb_substr($str,$start,$length,$charset);
}elseif(function_exists('iconv_substr')){
return iconv_substr($str,$start,$length,$charset);
}
$re['utf-8']="/[\x01-\x7f]|[\xc2-\xdf][\x80-\xbf]|[\xe0-\xef][\x80-\xbf]{2}|[\xf0-\xff][\x80-\xbf]{3}/";
$re['gb2312']="/[\x01-\x7f]|[\xb0-\xf7][\xa0-\xfe]/";
$re['gbk']="/[\x01-\x7f]|[\x81-\xfe][\x40-\xfe]/";
$re['big5']="/[\x01-\x7f]|[\x81-\xfe]([\x40-\x7e]|\xa1-\xfe])/";
preg_match_all($re[$charset],$str,$match);
$slice=join("",array_slice($match[0],$start,$length));
if($suffix){
return $slice."…";
}
return $slice;
}
$str = '明天会更好你相信的撒覆盖率很高了嘎是';
echo msubstr($str,0,10,$charset="utf-8",$suffix=true);
echo "<br />";
实现js的escape函数
/**
*php实现js escape函数
*@param[type]$string[description]
*@param string$encoding[description]
*@return[type][description]
*/
function escape($string,$encoding='UTF-8'){
$return=null;
for($x=0;$x<mb_strlen($string,$encoding);$x++){
$str=mb_substr($string,$x,1,$encoding);
if(strlen($str)>1){//多字节字符
$return.="%u".strtoupper(bin2hex(mb_convert_encoding($str,'UCS-2',$encoding)));
}else{
$return.="%".strtoupper(bin2hex($str));
}
}
return $return;
}
echo escape('hello,world',$encoding='UTF-8');
实现js的unescape函数
/**
*php实现js unescape函数
*@param[type]$str[description]
*@return[type][description]
*/
function unescape($str){
$str=rawurldecode($str);
preg_match_all("/(?:%u.{4})|.{4};|&#\d+;|.+/U",$str,$r);
$ar=$r[0];
foreach($ar as$k=>$v){
if(substr($v,0,2)=="%u"){
$ar[$k]=iconv("UCS-2","utf-8//IGNORE",pack("H4",substr($v,-4)));
}elseif(substr($v,0,3)==""){
$ar[$k]=iconv("UCS-2","utf-8",pack("H4",substr($v,3,-1)));
}elseif(substr($v,0,2)=="&#"){
echo substr($v,2,-1)."";
$ar[$k]=iconv("UCS-2","utf-8",pack("n",substr($v,2,-1)));
}
}
return join("",$ar);
}
数字转人名币
/**
*数字转人名币
*@param[type]$num[description]
*@return[type][description]
*/
function num2rmb($num){
$c1="零壹贰叁肆伍陆柒捌玖";
$c2="分角元拾佰仟万拾佰仟亿";
$num=round($num,2);
$num=$num*100;
if(strlen($num)>10){
return"oh,sorry,the number is too long!";
}
$i=0;
$c="";
while(1){
if($i==0){
$n=substr($num,strlen($num)-1,1);
}else{
$n=$num%10;
}
$p1=substr($c1,3*$n,3);
$p2=substr($c2,3*$i,3);
if($n!='0'||($n=='0'&&($p2=='亿'||$p2=='万'||$p2=='元'))){
$c=$p1.$p2.$c;
}else{
$c=$p1.$c;
}
$i=$i+1;
$num=$num/10;
$num=(int)$num;
if($num==0){
break;
}
}
$j=0;
$slen=strlen($c);
while($j<$slen){
$m=substr($c,$j,6);
if($m=='零元'||$m=='零万'||$m=='零亿'||$m=='零零'){
$left=substr($c,0,$j);
$right=substr($c,$j+3);
$c=$left.$right;
$j=$j-3;
$slen=$slen-3;
}
$j=$j+3;
}
if(substr($c,strlen($c)-3,3)=='零'){
$c=substr($c,0,strlen($c)-3);
}//if there is a'0'on the end,chop it out
return$c."整";
}
echo num2rmb(5);
转换字符串中特定的字符
/**
*特殊的字符
*@param[type]$str[description]
*@return[type][description]
*/
function makeSemiangle($str){
$arr=array(
'0'=>'0','1'=>'1','2'=>'2','3'=>'3','4'=>'4',
'5'=>'5','6'=>'6','7'=>'7','8'=>'8','9'=>'9',
'A'=>'A','B'=>'B','C'=>'C','D'=>'D','E'=>'E',
'F'=>'F','G'=>'G','H'=>'H','I'=>'I','J'=>'J',
'K'=>'K','L'=>'L','M'=>'M','N'=>'N','O'=>'O',
'P'=>'P','Q'=>'Q','R'=>'R','S'=>'S','T'=>'T',
'U'=>'U','V'=>'V','W'=>'W','X'=>'X','Y'=>'Y',
'Z'=>'Z','a'=>'a','b'=>'b','c'=>'c','d'=>'d',
'e'=>'e','f'=>'f','g'=>'g','h'=>'h','i'=>'i',
'j'=>'j','k'=>'k','l'=>'l','m'=>'m','n'=>'n',
'o'=>'o','p'=>'p','q'=>'q','r'=>'r','s'=>'s',
't'=>'t','u'=>'u','v'=>'v','w'=>'w','x'=>'x',
'y'=>'y','z'=>'z',
'('=>'(',')'=>')','〔'=>'[','〕'=>']','【'=>'[',
'】'=>']','〖'=>'[','〗'=>']','{'=>'{','}'=>'}','《'=>'<',
'》'=>'>',
'%'=>'%','+'=>'+','—'=>'-','-'=>'-','~'=>'-',
':'=>':','。'=>'.','、'=>',',','=>'.','、'=>'.',
';'=>';','?'=>'?','!'=>'!','…'=>'-','‖'=>'|',
'”'=>'"','“'=>'"','\''=>'`','‘'=>'`','|'=>'|','〃'=>'"',
''=>'','.'=>'.');
return strtr($str,$arr);
}
下载
/**
*下载
*@param[type]$filename[description]
*@param string$dir[description]
*@return[type][description]
*/
function downloads($filename,$dir='./'){
$filepath=$dir.$filename;
if(!file_exists($filepath)){
header("Content-type:text/html;charset=utf-8");
echo"File not found!";
exit;
}else{
$file=fopen($filepath,"r");
Header("Content-type:application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Accept-Length:".filesize($filepath));
Header("Content-Disposition:attachment;filename=".$filename);
echo fread($file,filesize($filepath));
fclose($file);
}
}