首页 > 技术文章 > php字符串

my-boke 2020-12-14 00:54 原文

  • 1.z字符串的定义:
<?php
$name='你好';
//使用单引号;
$str1='lingyikuaixue.com,$name';
//使用双引号;
$str2="lingyikuaixue.com,$name";
//使用herdoc语法
$str3=<<<EOD
lingyikuaixue.com,$name;
EOD;
//使用nowdoc语法
$str4=<<<'EOD'
lingyikuaixue,$name;
EOD;
echo $str1.'<br/>';
echo $str2.'<br/>';
echo $str3.'<br/>';
echo $str4.'<br/>';
  • 2.字符串常见操作:
<?php
//字符串的连接:
$name='零一快学';
$language='php';
echo $name.$language.'<br/>';
//字符串的长度:
echo strlen($name).'<br/>';
echo mb_strlen($name,'utf-8').'<br/>';
  • 3.查找字符串:

1.strstr();

<?php
$string='01快学php,零基础php从入门到精通';
var_dump(strstr($string,'01'));
echo '<hr/>';
var_dump(strstr($string,'php'));
echo '<hr/>';
var_dump(strstr($string,'PHP'));
echo '<hr/>';
var_dump(strstr($string,'php',true));

2.stristr();

<?php
$string='01快学PHP,零基础PHP从入门到精通';
var_dump(strstr($string,'php'));
echo "<hr/>";
//stristr忽略大小写,小写的php可以被搜索到;
var_dump(stristr($string,'php'));
<?php
$string='01快学PHP,零基础学习PHP从入门到精通';
$time_start=microtime(true);
for($i=0;$i<100000;$i++){
    strstr($string,'php');
}
$spend=microtime(true)-$time_start;
echo "strstr()函数执行时间为"."$spend*1000"."毫秒<br/>";
$time_start=microtime(true);
for($i=0;$i<100000;$i++){
    stristr($string,'php');
}
$spend=microtime(true)-$time_start;
echo "stristr()函数执行时间为"."$spend*1000"."毫秒<br/>";

3.strpos:查找字符串出现的位置,返回的是数字;

<?php
$string='hello world hello world';
//从初始位置开始查找并计数;
echo strpos($string,'world').'<br/>';
//从第10个位置开始查找并计数;
echo strpos($string,'world',10);

字符串的替换:

1.strtr()

<?php
//第一种加密方式$form中的每一个元素与$to一一对应替换
$from='abcdefghigklmnopqrstuvwxyz';
$to='qwertyuiopasdfghjklzxcvbnm';
$string='to the world you may be a person but to me you may be a world';
//将语句进行加密
$security_string=strtr($string,$from,$to);
echo "加密后的句子是:<br/>".$security_string."<br/>";
$new_string=strtr($security_string,$to,$from);
echo "将句子进行解密:<br/>".$new_string;

2.str_replace()

<?php
$var='abcdefghijklmn';
echo $var.'<br/>';
//var字符串开始位置0即a,长度为3,即abc将被替换;
echo substr_replace($var,'1234567',0,3).'<br/>';
//开始位置为-4即倒数第4 个位置k,长度为2,即kl将被替换;
echo substr_replace($var,'1234567',-4,2).'<br/>';
//从0开始的第五个位置f,,之后的所有字符均被替换
echo substr_replace($var,'1234567',5).'<br/>';
//var字符从0开始,长度为0,即字符的开始位置进行插入;
echo substr_replace($var,'1234567',0,0).'<br/>';
<?php
$code='170400030982999094';
    echo substr_replace($code,'********',-8).'<br/>';
$code='123456789067890';
    echo substr_replace($code,'######',3,5).'<br/>';

字符串的截取:

1.substr():

<?php
$var='abcdefghijklmnopqrstuvwxyz';
echo $var.'<br/>';
//var字符串开始位置为0,长度为3,截取abc;
echo substr($var,0,3).'<br/>';
//var字符串从0开始的第三个位置,即d,长度为1,截取d;
echo substr($var,3,1).'<br/>';
//以此类推。。。。

字符串首尾去空格:

1.trim();

<?php
$str=" @@lingyikuaixue,lingjichu@@\r\n";
echo trim($str);
echo '<br/>';
echo trim($str,"\r\n@");
echo '<br/>';
echo ltrim($str,"@");
echo '<br/>';
echo trim($str,"@");

字符串大小写转换:

1.lcfirst():把字符串的首字符转换为小写,

<?php
$var='This is a cat';
echo lcfirst($var);

2.strtolower()把字符串转换为小写;
3.strtouppper()把字符串转换为大写;
4.ucwords():把字符串的每个单词的首字符转换为大写

字符串比较函数:

1.strcmp,strcasecmp,strnatcmp;

<?php
//按字节顺序比较
$username="Kuaixue";
$password="01kuaixue";
//不区分字母大小写的比较:
if(strcasecmp($username,"kuaixue")==0){
    echo "两个字符串相等<br/>";
}
//区分字符串字母大小写的比较
if(strcmp($password,"01Kuaixue")==0){
    echo "两字符串相等<br/>";

}else if(strcmp($password,"01Kuaixue")>0){
    echo "d第一个字符串大于第二个字符串<br/>";
}else if(strcmp($password,"01Kuaixue")<0){
    echo "第一个字符串小于第二个字符串<br/>";
}
<?php
//按自然顺序比较
echo strnatcmp("2Hello 01!","10Helllo 01!");
echo '<br/>';
echo strnatcmp("10Hello 01!","2Hello 01!");

推荐阅读