PHP 字符串操作

PHP字符串函数包括查找字符位置函数;提取子字符函数;替换字符串;字符长度;比较字符函数;分割成数组字符;去除空格等等。

PHP语言中的字符串函数也是一个比较易懂的知识。今天我们就为大家总结了将近12种PHP字符串函数,希望对又需要的朋友有所帮助,增加读者朋友的PHP知识库。


查找字符位置函数:    
strpos($str,search,[int]) :查找search在$str中的第一次位置从int开始;
stripos($str,search,[int]): 函数返回字符串在另一个字符串中第一次出现的位置。该函数对大小写不敏感 
strpos('abcdefg', 'b' ,3 ) 在字符串中查找b,从第三个位置开始。

strrpos($str,search,[int]): 查找search在$str中的最后一次出现的位置从int开始
strripos($str,search,[int]): 同上,该函数对大小写不敏感
strpos 是最快的字符串查找函数。  

提取子字符串函数(双字节)

1 、strstr — 查找字符串的首次出现 (返回查到的字符串子串)
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
stristr 同上,不区分大小写

    
    
<?php
$email  = 'name@example.com';
$domain = strstr($email, '@');
echo $domain; // 打印 @example.com
 
$user = strstr($email, '@', true); // 从 PHP 5.3.0 起
echo $user; // 打印 name
?>

2、substr($str,int start[,int length]): 从$str中strat位置开始提取[length长度的字符串]。 

    
    
<?php
$rest = substr("abcdef", -1);    // 返回 "f"
$rest = substr("abcdef", -2);    // 返回 "ef"
$rest = substr("abcdef", -3, 1); // 返回 "d"
?>

3、strrchr() 从最后一次搜索到的字符处返回;用处:取路径中文件名
查找指定字符在字符串中的最后一次出现,如果 needle 包含了不止一个字符,那么仅使用第一个字符。该行为不同于 strstr()
如果第三个参数是数字,则按照ascii表顺序执行。


替换字符串的PHP字符串函数

1、str_replace(search,replace,$str):从$str中查找search用replace来替换
        str_ireplace 同上 不区分大小写
mixed str_replace    mixed     $search ,    mixed     $replace ,    mixed     $subject [, int &$count ] )
找到,再替换,在哪里找。

    
    
// 赋值: <body text='black'>
$bodytag = str_replace("%body%", "black", "<body text='%body%'>");
 
// 赋值: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

2、strtr($str,search,replace):这个函数中replace不能为"";
$str='abcdefghigklmn';
echo strtr($str, 'aed', '@2'); 把a抓换成@,把e转换成2 ,是一 一对应的,
在字符串中,把xx 替换成xx
strtr 速度最快 > str_replace 


3、substr_replace($Str,$rep,$start[,length]):$str原始字符串,$rep替换后的新字符串,$start起始置,$length替换的长度,该项可选
     
     
<?php
$var = 'ABCDEFGH:/MNRPQR/';
echo "Original: $var<hr />\n";
 
/* 这两个例子使用 “bob” 替换整个 $var。*/
echo substr_replace($var, 'bob', 0) . "<br />\n";
echo substr_replace($var, 'bob', 0, strlen($var)) . "<br />\n";
 
/* 将 “bob” 插入到 $var 的开头处。*/
echo substr_replace($var, 'bob', 0, 0) . "<br />\n";
 
/* 下面两个例子使用 “bob” 替换 $var 中的 “MNRPQR”。*/
echo substr_replace($var, 'bob', 10, -1) . "<br />\n";
echo substr_replace($var, 'bob', -7, -1) . "<br />\n";
 
/* 从 $var 中删除 “MNRPQR”。*/
echo substr_replace($var, '', 10, -1) . "<br />\n";
?>

分割成数组的PHP字符串函数 
1、array explodestring $separator , string $string [, int $limit ] ) 使用一个字符串分割另一个字符串
     
     
$pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
2、implode 是 join的别名 分割一个数组,返回一个字符串
     
     
$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);
echo $comma_separated; // lastname,email,phone

3、str_split($str,len):把$str按len长度进行分割返回数组
     
     
$str = "Hello Friend";
 Array
(
 
[0] => Hel
[1] => lo
[2] => Fri
[3] => end
)

4、split(search,$str[,int]):把$str按search字符进行分割返回数组int是分割几次
和explode的区别就是, split是用正则分割,explode是用普通字符串分割
看下面的代码: 
      
      
$test = end(explode('.', 'abc.txt'));
echo $test;//output txt
 
换成: 
$test1 = end(split('.','abc.txt')); 
echo $test1;//no output
 
split的正确做法是:加转义符号 
$test1 = end(split('\.','abc.txt'));
echo $test1;//output


字符串填充

1、str_pad — 使用另一个字符串填充字符串为指定长度
string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )
     
     
<?php
$input = "Alien";
echo str_pad($input, 10);                      // 输出 "Alien     "
echo str_pad($input, 10, "-=", STR_PAD_LEFT);  // 输出 "-=-=-Alien"
echo str_pad($input, 10, "_", STR_PAD_BOTH);   // 输出 "__Alien___"
echo str_pad($input, 6 , "___");               // 输出 "Alien_"
?>
第一个参数,要填充的字符串
第二个参数是 总长度
第三个参数 ,用什么填充
第四个参数 是在哪里填充,默认是right 右边,left 左边 both中间。

2、string str_repeat ( string $input , int $multiplier ) 重复一个字符串
     
     
echo str_repeat("-=", 10);
-=-=-=-=-=-=-=-=-=-=

3、string str_shuffle ( string $str )  随机打乱一个字符串
    
    
$str = 'abcdef';
$shuffled = str_shuffle($str);
 
// 输出类似于: bfdaec
echo $shuffled;

4、string strrev ( string $string ) 反转字符串
     
     
echo strrev("Hello world!"); // 输出 "!dlrow olleH"

5、int substr_count ( string $haystack , string $needle [, int $offset = 0 [, int $length ]] )
计算字串出现的次数
     
     
$text  =   'This is a test' ;  
echo strlen($text); // 14
 
echo substr_count($text, 'is'); // 2
 
// 字符串被简化为 's is a test',因此输出 1
echo substr_count($text, 'is', 3);
 
// 字符串被简化为 's i',所以输出 0
echo substr_count($text, 'is', 3, 3);
 
// 因为 5+10 > 14,所以生成警告
echo substr_count($text, 'is', 5, 10);
 
 
// 输出 1,因为该函数不计算重叠字符串
$text2 = 'gcdgcdgcd';
echo substr_count($text2, 'gcdgcd');

字符长度

int strlen($str)

比较字符函数 
int strcmp($str1,$str2):$str1>=<$str2分别为正1,0,-1(字符串比较) 
strcasecmp() 同上(不分大小写)
strnatcmp("4","14") 按自然排序比较字符串 
strnatcasecmp() 同上,(区分大小写)

去除空格:
ltrim()、rtrim()、trim() 

str = 'aaaa@'
trim($str, '@')

加空格函数 
chunk_split($str,2):向$str字符里面按2个字符就加入一个空格;

9、chr、ord--返回指定的字符或ascii

10、HTML代码有关函数
nl2br():使\n转换为<br>。
strip_tags($str[,'<p>']):去除HTML和PHP标记

在$str中所有HTML和PHP代码将被去除,可选参数为html和PHP代码作用是将保留可选参数所写的代码。 
如:echo strip_tags($text, '<br><p>');
htmlspecialchars($str[,参数]):页面正常输出HTML代码参数,是转换方式

11、字符大小写转换的PHP字符串函数 
strtolower($str): 字符串转换为小写 
strtoupper($str): 字符串转换为大写 
ucfirst($str): 将函数的第一个字符转换为大写 
ucwords($str): 将每个单词的首字母转换为大写

12、数据库相关的PHP字符串函数 
addslashes($str):使str内单引号(')、双引号(")、反斜线(\)与 NUL
字符串转换为\',\",\\。 
magic_quotes_gpc = On :自动对 get,post,cookie的内容进行转义
get_magic_quotes_gpc():检测是否打开magic_quotes_gpc
stripslashes(): 去除字符串中的反斜杠


字符串常用技巧:
1、有经验的程序员发现,php判断字符串长度,使用isset()在速度上比strlen()更快,执行效率更高。
     
     
$str = aaaaaa';
if(strlen($str) > 6)
VS
if(!isset($str{6})   
用例子简单测试下,情况基本属实,isset()效率几乎是strlen()的3倍。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值