一聚教程网:一个值得你收藏的教程网站

热门教程

php入门教程之字符串函数学习笔记

时间:2022-06-24 15:20:15 编辑:袖梨 来源:一聚教程网

PHP语言是一个功能强大的嵌入式HTML脚本语言,它的易用性让许多程序员选择使用。PHP判断字符串的包含,可以使用PHP的内置函数strstr,strpos,stristr直接进行判断.也可以通过explode函数的作用写一个判断函数。

探讨如何实现PHP判断字符串是否为IP
深入探讨PHP自动获取关键词的具体方法
PHP字符串函数的分类总结
分享PHP函数require()的具体使用技巧
PHP重定向网页的具体实现方法介绍
下面介绍PHP判断字符串的包含的具体使用方法:
1. strstr: 返回一个从被判断字符开始到结束的字符串,如果没有返回值,则不包含

代码如下:

 代码如下 复制代码
< ?php
/*如手册上的举例*/
$email = 'user@example.com';
$domain = strstr($email, '@');
echo $domain;
// prints @example.com
?>

2. stristr: 它和strstr的使用方法完全一样.唯一的区别是stristr不区分大小写.

3. strpos: 返回boolean值.FALSE和TRUE不用多说.用 “===”进行判断.strpos在执行速度上都比以上两个函数快,另外strpos有一个参数指定判断的位置,但是默认为空.意思是判断整个字符串.缺点是对中文的支持不好.

PHP判断字符串的包含代码如下:

 代码如下 复制代码
$str= ‘abc’;
$needle= ‘a’;
$pos = strpos($str, $needle);

4. 用explode进行判断

PHP判断字符串的包含代码如下:

 代码如下 复制代码
function checkstr($str){
$needle = “a”;//判断是否包含a这个字符
$tmparray = explode($needle,$str);
if(count($tmparray)>1){
return true;
} else{
return false;
}
}

以上就是PHP判断字符串的包含的具体代码示例。

去除字符串首尾处的空白字符或者任意字符 - trim - 返回去掉后的字符串

 代码如下 复制代码
/* 格式:trim(字符串,'要去掉的特殊字符可以是多个') */ 
$str=trim('     admin ');  
echo $str; // admin 两边无空格 
 
echo $str=trim(' admin ********','* '); // admin 
echo strlen($str); // 5 通过长度得知字符有没有被去掉 

             
去除字符串右侧的空白字符或者任意字符 - rtrim - 返回去掉后的字符串

 代码如下 复制代码
/* 格式:rtrim(字符串,'要去掉的特殊字符可以是多个') */ 
$str=rtrim('     admin ');  
echo $str; //'     admin' 右侧无空格 
 
echo $str=rtrim(' admin ********','* '); // admin 
echo strlen($str); // 10 通过长度得知字符有没有被去掉 

             
去除字符串右侧的空白字符或者任意字符 - chop - chop是rtrim的别名

 代码如下 复制代码
/* 格式:chop(字符串,'要去掉的特殊字符可以是多个') */ 
$str=chop('     admin ');  
echo $str; //'     admin' 右侧无空格 
 
echo $str=chop(' admin ********','* '); // admin 
echo strlen($str); // 10 通过长度得知字符有没有被去掉 

             
去除字符串左侧的空白字符或者任意字符 - ltrim - 返回去掉后的字符串

 代码如下 复制代码

/* 格式:ltrim(字符串,'要去掉的特殊字符可以是多个') */ 
$str=rtrim('     admin ');  
echo $str; //'     admin' 右侧无空格 
 
echo $str=ltrim(' admin ********','* '); // 'admin ********' 
echo strlen($str); // 14 通过长度得知字符有没有被去掉 

              

 
字符串生成与转化

把字符串填充为指定的长度 - str_pad - 返回被填充后的字符串

 代码如下 复制代码
/* 格式:str_pad(字符串,pad_length,用什么替换,STR_PAD_RIGHT(默认)/STR_PAD_LEFT/STR_PAD_BOTH)  */ 
$a="admin"; 
echo str_pad($a,8,'*'); //admin*** 
echo str_pad($a,8,'*',STR_PAD_RIGHT); // admin*** 
echo str_pad($a,8,'*',STR_PAD_LEFT); // ***admin 
echo str_pad($a,8,'*',STR_PAD_BOTH); // *admin** 
/* 结论
'1...STR_PAD_BOTH的时候如果是只能填充奇数的,右边会多于左边';
'2...第四个参数默认为STR_PAD_RIGHT';
'3...如果第二个数小于等于字符串的长度或者负数,不会发生填充';
*/ 

             
将某个字符重复多少次 - str_repeat - 返回重复的字符串

 代码如下 复制代码

/* 格式:str_repeat(字符串,重复几次)  */ 
echo $a=str_repeat('.',5); // ..... 
echo strlen($a); // 5 
         

    
将字符串分割为数组 - str_split - 返回数组

 代码如下 复制代码
/* 格式:str_split(字符串,每一段的长度)  */ 
$str='my name is cuilin. I am chinese boy.'; 
$arr=str_split($str,8); 
print_r($arr); //Array ( [0] => my name [1] => is cuili [2] => n. I am [3] => chinese [4] => boy. )  

             
将字符串反转 - strrev - 返回反转后的字符串

 代码如下 复制代码
/* 格式:strrev(字符串)  */ 
$str='admin'; 
echo strrev($str); // nimda 

             
打断字符串为指定数量的字串 - wordwrap - 返回被打断后的字符串

 代码如下 复制代码
/* 格式:wordwrap('字符串',列宽度,使用可选的break参数打断字符串,如果)  */ 
$str = "An example on a long word is: Supercalifragulistic"; 
echo wordwrap($str,15);/*
An example on a
long word is:
Supercalifragulistic
*/ 
$text = "admfinadsifjsaidjfasdfasdfdsaf"; 
$newtext = wordwrap($text, 8, "\n",false);  
echo "$newtext";//admfinadsifjsaidjfasdfasdfdsaf 

/*结论
    '1...第四个参数如果是true(默认)符串总是在指定的宽度或者之前位置被打断。因此,如果有的单词宽度超过了给定的宽度,它将被分隔开来。';
    '2...第四个参数为false的时候会按单词拆行,';
*/ 
             
随机打乱字符串的顺序 - str_shuffle - 返回被打乱后的字符串

 代码如下 复制代码
echo $a="admin 123"; 
print_r(str_shuffle($a)); // 1a m23din 

             
将字符串解析成变量 - parse_str - 返回字符串或者数组

 代码如下 复制代码
/* 格式 parse_str('字符串'[,$m]) */ 
$a="host=localhost&user=admin&pass=123456"; 
parse_str($a);//将字符串解析成变量 
echo $host; //localhost 
 
parse_str($a,$arr);//将数变量保存到数组中 
print_r($arr); 
/*结论
    如果不设置第二个参数,可以直接变量输出。如果设置了就解析成数组存到该变量中
*/ 

         
通过千位分组来格式化数字 - number_format - 返回分割之后的字符串

 代码如下 复制代码

/* 格式:number_format(变量,留小数点几位,小数点用什么表示,千位分隔符用什么)  - 第三个第四个参数得同时用否则警告*/ 
$n=123456789.456; 
echo number_format($n); // 123,456,789 
echo number_format($n,2); //123,456,789.46 
echo number_format($n,2,'.',':');//123:456:789.46 

          

 
大小写替换

转化为大写 - strtoupper - 返回转换为大写后的字符串

 代码如下 复制代码

$str='admin123'; 
echo strtoupper($str); // ADMIN123 

         
转化为小写 - strtoupper - 返回转换为小写后的字符串

 代码如下 复制代码

$str='ADMIN123'; 
echo strtolower($str); // admin123 
         
字符串第一个字符大写 - ucfirst - 返回第一个字符大写后的字符串

$str='admin123 cuilin'; 
echo ucfirst($str); // Admin123 cuilin 
         
单词第一个字符大写 - ucwords - 返回单词首字母大写后的字符串

$str='admin123 cuilin'; 
echo ucwords($str); // Admin123 Cuilin 
         
字符串切割与并接

将字符串分成小块 - chunk_split

/* 格式:chunk_split(字符串,长度,插入字符) */ 
$str="hellow word ~I like php"; 
echo chunk_split($str,3,'*'); // hel*low* wo*rd *~I *lik*e p*hp*  
         
将字符串分成小块 - strtok

/* 格式:strtok(字符串,'符号分割') */ 
$str="hellow word ~I like php~asf"; 
var_dump(strtok($str,'~')); //string(12) "hellow word " 
var_dump(strtok('~')); //string(10) "I like php" 
var_dump(strtok('~')); //string(3) "asf" 
         
使用一个字符串为标志分割另一个字符串 - explode 返回一个数组

/* 格式:explode('分割符号',$string[,int $limit])  */ 
$str="a,b,c,d,e,f,g"; 
var_dump(explode(',',$str,-3)); 
var_dump(explode(',',$str,3)); // Array('a','b','c,d,e,f,g,h') 
/*结论
    如果第三个参数为正数说明把字符串分割为3个单元。
    如果第三个参数为负数则说明去掉倒数$limit后面(含)的,前面的正常分割 。
    如果第三个参数为0或1的时候字符串整体为数组的一个单元。
*/ 
         

/* JavaScript中 - str.split('连接符') */ 
str='George.John.Thomas.Cui' 
document.write(str.split('.',3)); // George,John,Thomas 
         
使用一个字符将数组中的单元以字符串形式连接起来 - implode 返回一字符串

$arr=array('a','b','c'); 
var_dump(implode('-',$arr)); // a-b-c 
         

/* JavaScript中 - arr.join('连接符') */ 
var arr = new Array(3) 
arr[0] = "George" 
arr[1] = "John" 
arr[2] = "Thomas" 
 
document.write(arr.join(".")) // George.John.Thomas 
         
截取字符串 - substr 返回一个字符串或者false

$string="my phpmyadmin user is root and password is root"; 
var_dump(substr($string,1,10)); // string(10) "y phpmyadm"   
var_dump(substr($string,1,-1)); // string(45) "y phpmyadmin user is root and password is roo"  
/*结论    
    如果第三个参数为正数说明要截取的字符串长度,如果为负数则截取到那个数的前面
*/ 
         

/* JavaScript中的格式str.substr(开始下标,长度) */ 
var str="Hello world!" 
document.write(str.substr(3,7)) //lo worl 
         
字符串查找替换

使用一个字符将数组中的单元以字符串形式连接起来(区分大小写) - str_replace 替换已知的字符串

/* 格式 str_replace('把这个东西','改成这个东西',字符串) */ 
$string="My phpmyadmin user is root and password is root"; 
$arr=array('m','p','i','d'); 
echo str_replace($arr,'*',$string); // My *h**ya***n user *s root an* *asswor* *s root    
         
使用一个字符将数组中的单元以字符串形式连接起来(不区分大小写) - str_ireplace

/* 格式 str_ireplace('把这个东西','改成这个东西',字符串) */ 
$string="My phpmyadmin user is root and password is root"; 
$arr=array('m','p','i','d'); 
echo str_ireplace($arr,'*',$string); // *y *h**ya***n user *s root an* *asswor* *s root    
         
返回某个字符串在 $string 中出现的次数 - substr_count 返回整数。区分大小写

/* 格式 substr_count($string,'这个字符串',要计数的偏移位置,从偏移量开始的这么多个中找) */ 
$string="My phpmyadmin user is root and my phpmyadmin password is root"; 
 
echo strlen($string); //61 
//查找'phpmyadmin在$string中出现的次数 
echo substr_count($string,'phpmyadmin'); //2 
//查找'phpmyadmin'在$string中从第5个开始的字符串中出现的次数 
echo substr_count($string,'phpmyadmin',4); //1 
//查找'phpmyadmin'在$string中从第5个开始的字符串中出现的次数 
echo substr_count($string,'phpmyadmin',2,42); //2 
         
替换字符串中某串为另一个字符串 - substr_replace 定位替换

/* 格式 substr_replace($string,'替换为这个',从这个(含),到这个前面的) */ 
$var = 'ABCDEFGH:/MNRPQR/'; 
echo "Original: $var

\n"; 
 
/* 这两个例子使用 “bob” 替换整个 $var。*/ 
echo substr_replace($var, 'bob', 0); //bob 
echo substr_replace($var, 'bob', 0, strlen($var)); //bob 
/* 将 “bob” 插入到 $var 的开头处。*/ 
echo substr_replace($var, 'bob', 0, 0); //bobABCDEFGH:/MNRPQR/ 
/* 下面三个例子使用 “bob” 替换 $var 中的 “MNRPQR”。*/ 
echo substr_replace($var, 'bob', 10, -1); //ABCDEFGH:/bob/ 
echo substr_replace($var, 'bob', 10,strlen($var)-11); //ABCDEFGH:/bob/ 
echo substr_replace($var, 'bob', -7, -1); //ABCDEFGH:/bob/ 
 
/* 从 $var 中删除 “MNRPQR”。*/ 
echo substr_replace($var, '', 10, -1); //ABCDEFGH:// 
         
计算两个字符串的相似度。 - similar_text 返回相同字符数量 , 返回在两个字符串中匹配字符的数目

/* 格式 similar_text($string1,$string2) */ 
$a="host is localhsot user is admin password is 123465"; 
$b="Host and user and password phpmyadmin"; 
echo similar_text($a,$b); //24 
         
查找指定字符在字符串中的最后一次出现 - strrchr 找到了返回后面的字符串。如果未被找到,返回 FALSE。

/* 格式 strrchr($string,'找这个字符 ') */ 
 
// 获取 $PATH 中不含磁盘符号的目录 
echo $dir = substr(strrchr($PATH, ":"), 1); // \svn\TortoiseSVN\bin; 
echo '
'; 
// 获取最后一行内容 
$text = "Line 1\nLine 2\nLine 3"; 
echo $last = substr(strrchr($text, 10), 1 ); // Line3 
         
查找字符串的首次出现(区分大小写) - strstr 找到返回后面的字符,找不到返回false 【别名strchr】

/* 格式 strstr($string,'找这个字符 ',true/false(此参数从 PHP 5.3.0 起)) */ 
$email  = 'name@example.com'; 
$domain = strstr($email, '@E'); 
var_dump($domain); // @example.com 
         
转换指定字符- strtr

/* 格式 strtr(数组键值对,字符串); 数组键值对说明什么东西替换成什么 */ 
$trans = array("hello" => "hi", "hi" => "hello"); 
echo strtr("hi all, I said hello", $trans); // hello all,I said hi 
         
查找字符串首次出现的位置(区分大小写)- strpos 找到返回整数(0开始位置),失败返回false

/* 格式 strpos($str,'要找的字符',从这个位置开始后面字符开始找)  */ 
$str="My phpmyadmin user is root my phpmyadmin passwOrd is rOot"; 
var_dump(strpos($str,'m',0));//6 
         
查找字符串首次出现的位置(不区分大小写)- stripos 找到返回整数(0开始位置),失败返回false

/* 格式 stripos($str,'要找的字符',从这个位置开始后面字符开始找)  */ 
$str="My phpmyadmin user is root my phpmyadmin passwOrd is rOot"; 
var_dump(stripos($str,'m',0));//0 
         
查找字符串最后次出现的位置(区分大小写)- strrpos 找到返回整数(0开始位置),失败返回false

/* 格式 strrpos($str,'要找的字符',从这个位置开始后面字符开始找)  */ 
$str="My phpmyadmin user is root my phpmyadmin passwOrd is rOot"; 
var_dump(strrpos($str,'O',1));  // 54 
         
查找字符串最后次出现的位置(不区分大小写)- strripos 找到返回整数(0开始位置),失败返回false

/* 格式 strripos($str,'要找的字符',从这个位置开始后面字符开始找)  */ 
$str="My phpmyadmin user is root my phpmyadmin passwOrd is rOot"; 
var_dump(strripos($str,'O',1)); // 55 
         
字符串统计

统计字符串含有的单词数 - str_word_count 返回整数

/* 格式 str_word_count($string) */ 
$var = "is  the answer to the 128th question"; 
echo str_word_count($var);//7 
         
统计字符串长度 - strlen 返回整数

/* 格式 strlen($string) */ 
echo strlen('admin'); // 5 
         

/* JavaScript中 str.length */ 
str='admin'; 
document.write(str.length); //  
         
HTML标签有关

预定义转移字符html编码 - htmlspecialchars

/* 格式 htmlspecialchars('字符串',ENT_QUOTES) */ 
$var = "is  the answer to the 128th question"; 
echo str_word_count($var);//7 
echo $str = "John & 'Adams' 首页"; //John & 'Adams' 首页 ->会有超链接 
echo htmlspecialchars($str, ENT_QUOTES); //John & 'Adams' 首页 ->没有超链接,直接显示 
         
\n转义为
标签 - nl2br

/* 格式 nl2br('字符串') */ 
echo $str = "admin\n123456";/*admin
123456
*/ 
echo nl2br($str);/*admin
 
123456
*/ 
         
在指定的字符前添加反斜线转义字符串中字符 addcslashes

/* 格式 addcslashes('字符串',要转义的字符) */ 
$str = "Hello, my name is John Adams."; 
echo addcslashes($str,'a..z'); //H\e\l\l\o, \m\y \n\a\m\e \i\s J\o\h\n A\d\a\m\s.  
         
反引用一个使用addcslashes()添加的反斜线 stripcslashes

/* 格式 stripcslashes('字符串') */ 
$str = "Hello, my name is John Adams."; 
echo $str1=addcslashes($str,'a..z'); // H\e\l\l\o, \m\y \n\a\m\e \i\s J\o\h\n A\d\a\m\s.Hello, my name is John Adams. 
echo stripcslashes($str1);/* - 转义 \n等所以会出现回车
Hello, my   
me is Joh  
 Adms.  
*/ 
         
指定预定义字符前添加反斜线 addslashes

$str = "Who's John Adams?"; 
echo addslashes($str); // Who\'s John Adams?    
         
删除addslashes()添加的转义字符 stripslashes

  
$str = "Who's John Adams?"; 
echo $str1=addslashes($str); // Who\'s John Adams?    
echo stripslashes($str1); // Who's John Adams? 
         
在字符串中某些预定义的字符前添加反斜线 quotemeta(. \ + * ? [] ^ $ ())

  
$str = "Hello world. (can you hear me?)"; 
echo quotemeta($str); //Hello world\. \(can you hear me\?\) 
         
从指定的 ASCII 值返回字符 chr(ASCII)

  
echo chr(052); // * 
echo chr(96); //` 
         
从指定的 ASCII 值返回字符 ord(字符)

echo ord('*'); //42 
echo ord('`'); // 96 

热门栏目