ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] ## **去空格或或其他字符:** ### **trim**(str,delstr) 删除字符串两端的空格或其他预定义字符 ``` $str = "\r\nHello World!\r\n"; echo trim($str);//hello world! ``` ### **rtrim**() 删除字符串右边的空格或其他预定义字符 ### **chop**() rtrim()的别名 ``` $str = "\r\nHello World!\r\n"; echo trim($str);//\r\nhello world! ``` ### **ltrim**() 删除字符串左边的空格或其他预定义字符 ``` $str = "\r\nHello World!\r\n"; echo ltrim($str);//hello world!\r\n ``` ### **dirname**() 返回路径中的目录部分 ``` echo dirname("c:/testweb/home.php");//c:/testweb ``` ## **字符串生成与转化:** ### **str_pad**() 把字符串填充为指定的长度 str_pad(string{必需。规定要填充的字符串。},length{必需。规定新字符串的长度。如果该值小于原始字符串的长度,则不进行任何操作},pad_string{可选。规定供填充使用的字符串。默认是空白。},pad_type{可选。规定填充字符串的那边}) ``` $str = "Hello World"; echo str_pad($str,20,".");//Hello World......... ``` ### **str_repeat**() 重复使用指定字符串 ``` echo str_repeat(".",13);//输出13个点…………. ``` ``` /** * 位不足0补齐 * @param [type] $num [description] * @param integer $len [description] * @return [type] [description] */ function formatZero($num, $len=2, $pad_str="0") { $strlen=strlen(strval($num)); if ($strlen > $len) { return $num; } $value=str_repeat($pad_str, bcsub($len, $strlen)).$num; return $value; } ``` ### **str_split**() 把字符串分割到数组中 array str_split ( string $string转换的字符串} [, int $split_length每一段的长度,不选他时默认为1如果小于1返回false大于要转换的字符串长度则则返回1个 ] ) ``` print_r(str_split("Hello")); ``` ### **strrev**($string) 反转字符串 ``` echo strrev("Hello World!");//!dlroW olleH ``` ### **wordwrap**() 按照指定长度对字符串进行折行处理 ``` $str = "An example on a long word is: Supercalifragulistic"; echo wordwrap($str,15); ``` ### **str_shuffle**() 随机地打乱字符串中所有字符 ``` echo str_shuffle("Hello World"); ``` ### **parse_str**() 将字符串解析成变量 ``` parse_str("id=23&name=John%20Adams",$myArray); print_r($myArray); Array( [id] => 23 [name] => John Adams) ``` ### **number_format**() 通过千位分组来格式化数字 ``` 格式如下: 1,000,000 1,000,000.00 1.000.000,00 ``` ## **大小写转换:** ### **strtolower**() 字符串转为小写 ### **strtoupper**() 字符串转为大写 ### **ucfirst**() 字符串首字母大写 ### **lcfirst** 字符首字母转小写 ### **ucwords**() 字符串每个单词首字符转为大写 ## **字符串比较:** ### **strcasecmp**() 不区分大小写比较两字符串 大1|等0|小-1 ``` echo strcasecmp("Hello world!","HELLO WORLD!"); ``` ### **strcmp**() 区分大小写比较两字符串 ### **strncmp**() 比较字符串前n个字符,区分大小写 ``` int strncmp ( string $str1 , string $str2 , int $len ) ``` ### **strncasecmp**() 比较字符串前n个字符,不区分大小写 ``` int strncasecmp ( string $str1 , string $str2 , int $len ) ``` ### **strnatcmp**() 自然顺序法比较字符串长度,区分大小写 ``` int strnatcmp ( string $str1 , string $str2 ) ``` ### **strnatcasecmp**() 自然顺序法比较字符串长度,不区分大小写 ``` int strnatcasecmp ( string $str1 , string $str2 ) ``` ## **字符串切割与拼接:** ### **chunk_split**() 将字符串分成小块 str chunk_split(str $body[,int $len[,str $end]]) ``` $str = "Shanghai"; echo chunk_split($str,1,".");//S.h.a.n.g.h.a.i. ``` ### **strtok**() 切开字符串 str strtok(str $str,str $token) ``` $string = ";aaa;;bbb;"; $parts = []; $tok = strtok($string, ";"); while ($tok !== false) { $parts[] = $tok; $tok = strtok(";"); } echo json_encode($parts),"\n";//["aaa","bbb $parts = explode(";", $string); echo json_encode($parts),"\n";//["","aaa","","bbb",""] $a=strtok('sz123456','sz'); var_dump($a);//123456 $a=strtok('sz123456','123456'); var_dump($a);//sz $a=strtok(';aaa;;bbb;',';'); var_dump($a);//aaa $string = "This is an example string"; $tok = strtok($string, " "); echo $tok;//This //需要得到后面的就要迭代获取 while ($tok !== false) { echo "$tok";//This、is、an、example、string $tok = strtok(" "); } ``` ### **explode**() 指定字符串分割另一个字符串 ``` array explode(str $sep,str $str[,int $limit]) ``` ### **implode**() 同join,将数组值用预订字符连接成字符串 ``` string implode ( string $glue , array $pieces ) ``` ### **substr**() 截取字符串 string substr ( string $string , int $start [, int $length ] ) 保留字符串前面的 substr($str,start\[,$length\]); start  为负数 则从后面开始截取 leng为负数则返回的字符串将从 $str 结尾处向前数第 start 个字符开始 ![爱选型公众号](file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtml1\11\clip_image002.jpg) ![111](file:///C:\Users\ADMINI~1\AppData\Local\Temp\msohtml1\13\clip_image002.gif) ~~~ $str='1234:46789'; $len=strlen($str); $pos=strpos($str,':'); //保留:前面的 substr($str,0,$pos);//1234 substr($str,-($len),-($len-$pos));// 1234 截取完 从后面开始的第(10-4=6)个还是显示 //保留;后面的: substr($str,$pos);//:46789 ~~~ >[danger]截取中文字符串请用mb\_substr ## **字符串查找替换:** ### **str_replace**() 字符串替换操作,区分大小写 ``` $subject='1+1=2,3+4=7'; $search=array(1,2,3,4,7); $replace=array('a','2a','c','d','cd'); echo $final=str_replace($search,$replace,$subject); 输出:a+a=2a,c+d=cd //将php的时间格式时间转为daterangepicker的时间格式(Y-m-d H:i:s 变为YYYY-MM-DD HH:mm:ss) $foramt=str_replace(['Y','m',"d","H","i","s"],["YYYY",'MM',"DD","HH","mm","ss"],$foramt); //将手机号中间替换为**** substr_replace($mobile, '****', 3, 4) ``` ### **str_ireplace**() 字符串替换操作,不区分大小写 mix str_ireplace ( mix $search , mix $replace , mix $subject [, int &$count ] ) ### **substr_count**() 统计一个字符串,在另一个字符串中出现次数 int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] ) ``` $haystack="aabbccaa aabbcc"; $needle='aa'; echo substr_count($haystack, 'a', 0, 15); 输出6 ``` ### **substr_replace**() 替换字符串中某串为另一个字符串 mixed substr_replace ( mixed $string , string $replacement , int $start [, int $length ] ) ``` $var = 'ABc:/123/';echo substr_replace($var, 'bob', 0);<==>bob echo substr_replace($var, 'bob', 0, strlen($var));<==>bob ``` ### **similar_text**() 返回两字符串相同字符的数量 int similar_text(str $str1,str $str2) ``` echo similar_text('a123123','a12344441234');<==>7 ``` ### **strrchr**() 返回一个字符串在另一个字符串中最后一次出现位置开始到末尾的字符串 string strrchr ( string $haystack , mixed $needle ) ``` echo strrchr('abccccdefg','c');<==>cdefg ``` ### **strstr**() 返回一个字符串在另一个字符串中开始位置(包括它)到结束的字符串 第三个参数为true时返回之前的字符串 string strstr ( string $str, string $needle , bool $before_needle ) ``` echo strstr('abcdefg','c');<==>cdefg echo strstr('abcdefg','c',true);<==>ab ``` ### **strchr**() strstr()的别名,返回一个字符串在另一个字符串中首次出现的位置开始到末尾的字符串 ### **strichr**() 返回一个字符串在另一个字符串中开始位置到结束的字符串,不区分大小写 string stristr ( string $haystack , mixed $needle [, bool $before_needle = false ] ) ### **strtr**() 转换字符串中的某些字符 string strtr ( string $str , string $from , string $to ) ### **strpos**() 寻找字符串中某字符最先出现的位置(区分大小写) int strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) ``` echo strpos('Cabcdefg','c').'<pre>';<==>3 ``` ### **stripos**() 寻找字符串中某字符最先出现的位置,不区分大小写 int stripos ( string $haystack , string $needle [, int $offset ] ) ``` echo stripos('cabcdefg','c').'<pre>';<==>0 ``` ### **strrpos**() 寻找某字符串中某字符最后出现的位置 int strrpos ( string $haystack , string $needle [, int $offset = 0 ] ) ### **strripos**() 寻找某字符串中某字符最后出现的位置,不区分大小写 int strripos ( string $haystack , string $needle [, int $offset ] ) ### **strspn**() 返回字符串中首次符合mask的子字符串长度 int strspn ( string $str1 , string $str2 [, int $start [, int $length ]] ) ``` $subject='lamp129';$mask='123456789';echo strspn($subject,$mask, 5, 2); <==>2 $subject='lamp129';$mask='123456789';echo strspn($subject,$mask, 4, 3); <==>3 ``` ### **strcspn**() 返回字符串中不符合mask的字符串的长度 int strcspn ( string $str1 , string $str2 [, int $start [, int $length ]] ) $str1被查询,$str2查询字符串,$start开始查询的字符,$length查询长度 ## **字符串统计:** ### **str_word_count**() 统计字符串含有的单词数 ### **strlen**() 统计字符串长度 ### **count_chars**() 统计字符串中所有字母出现次数(0..255) ## **字符串编码:** ### **md5**() 字符串md5编码 ### **urlencode**() 编码 URL 字符串 ``` $url = "https://www.notarealurl.com?id=50&name = namestring "; $encodedurl = urlencode($url);//https%3A%2F%2Fwww.notarealurl.com%3Fid%3D50%26name+%3D+namestring+ $url = "https://www.notarealurl.com?id=50&name=namestring"; $encodedurl = urlencode($url);//https%3A%2F%2Fwww.notarealurl.com%3Fid%3D50%26name%3Dnamestring ``` ### [**urldecode**()](https://www.php.net/manual/zh/function.urldecode.php)\- 解码已编码的 URL 字符串 ### [rawurlencode()](https://www.php.net/manual/zh/function.rawurlencode.php)\- 按照 RFC 3986 对 URL 进行编码 此字符串中除了`-_.`之外的所有非字母数字字符都将被替换成百分号(`%`)后跟两位十六进制数 ``` $url = "https://www.notarealurl.com?id=50&name = namestring "; $encodedurl = rawurlencode($url);//string(69) "https%3A%2F%2Fwww.notarealurl.com%3Fid%3D50%26name%20%3D%20namestring%20" $url = "https://www.notarealurl.com?id=50&name=namestring"; $encodedurl = rawurlencode($url);//string(63) "https%3A%2F%2Fwww.notarealurl.com%3Fid%3D50%26name%3Dnamestring" ``` ``` echo '<a href="ftp://user:', rawurlencode('foo @+%/'),      '@ftp.example.com/x.txt">'; //<a href="ftp://user:foo%20%40%2B%25%2F@ftp.example.com/x.txt"> ``` ### [rawurldecode()](https://www.php.net/manual/zh/function.rawurldecode.php)\- 对已编码的 URL 字符串进行解码 ## **html标签关联**: ### **htmlentities**() 把字符转为HTML实体(p\div等标签会原样输出在浏览器) ### **htmlspecialchars**() 预定义字符转html编码 ### **nl2br**() \n转义为\<br\>标签 ### **strip_tags**() 剥去 HTML、XML 以及 PHP 的标签 ### **addcslashes**() 在指定的字符前添加反斜线转义字符串中字符 ### **stripcslashes**() 删除由addcslashes()添加的反斜线 ### **addslashes**() 指定预定义字符前添加反斜线 ### **stripslashes**() 删除由addslashes()添加的转义字符 ### **quotemeta**() 在字符串中某些预定义的字符前添加反斜线 ### **chr**() 从指定的 ASCII 值返回字符 ### **ord**() 返回字符串第一个字符的 ASCII 值