php字符串


字符串的声明(数据类型)
1.可以使用双引号,也可以使用单引号
双引号可以解析变量,也可以解析所有转义字符

2.分割 匹配 查找 替换

$str = 'abcdefghigklmn';
$s = '';

for($i=0;$i<strlen($str);$i++){
   if($i%2==0){
      $s .= $str{$i};
   }
}

echo $s.'<br>';

$str2 = 'hello';
echo $str2{2}.'<br>';//l$str2[2] = 'world';
echo $str2.'<br>'; //'hewlo'

$int = array("one"=>100,"two"=>200);
echo "aaaaaaaa$int[one]aaaaaaa<br>";//可以解析
echo "aaaaaaaa{$int["one"]}aaaaaaa<br>";//可以解析
echo "aaaaaaaa".$int["one"]."aaaaaaa<br>";//可以解析
echo "aaaaaaaa$int['one']."aaaaaaa<br>";//不可以解析,如果对于关联数组下标使用引号,就必须使用花括号

特点:如果是其它类型的数据,也可以使用字符串函数,先将其它类型自动转成字符串再处理。

字符串可以像数组一样,通过每个下标,来访问每个字符,但不是数组(数组也可以通过{}来访问成员)echo count('abc').'<br>'; //1  

 

常用的字符串有

1.中文截取:mb_substr() 

 mb_substr( $str, $start, $length, $encoding ) 

 $str,需要截断的字符串 

 $start,截断开始处,起始处为0 

 $length,要截取的字数 

 $encoding,网页编码,如utf-8,GB2312,GBK 

$str='脚本之家:http://www.jb51.net'; 

echo mb_substr($str,0,4,'utf-8');//截取头5个字,假定此代码所在php文件的编码为utf-8 

//结果显示:脚本之家 

 

2.获取中文长度:mb_strlen() 

mb_strlen( $str, $encoding ) 

$str,要计算长度的字符串 

$encoding,网页编码,如utf-8,GB2312,GBK 

$str='脚本之家:http://www.jb51.net'; 
echo mb_strlen($str,'utf-8');//假定此代码所在php文件的编码为utf-8 

//24 
strlen()、mb_strlen()函数
//测试时文件的编码方式要是UTF8

$str='中文a字1符';

echo strlen($str).'<br>';//14

echo mb_strlen($str,'utf8').'<br>';//6

echo mb_strlen($str,'gbk').'<br>';//8

echo mb_strlen($str,'gb2312').'<br>';//10
$str = '/web/a/b/index.php';

$pos = strrpos($str,'/');
//获取文件名
echo substr($str, $pos+1);
echo basename($str);  //index.php

//获取路径名
echo substr($str,0,9); 
echo dirname($str);  // /web/a/b

 

3.反转字符串:strrev()函数 

echo strrev("I love Shanghai!");

//!iahgnahS evol I 

 

4.分割字符串:chunk_split()函数

 在每个字符后分割一次字符串,并在每个分割后添加 ".":

$str = "Shanghai"; echo chunk_split($str,1,".");
//S.h.a.n.g.h.a.i. 

 

5. 转义字符串:addslashes() 函数

 在每个双引号(")前添加反斜杠:

$str = addslashes('Shanghai is the "biggest" city in China.');
echo($str);
//Shanghai is the \"biggest\" city in China. 

 

6.把预定义的字符转成html实体:htmlspecialchars() 函数

把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:
php $str = "This is some <b>bold</b> text.";
echo htmlspecialchars($str);

浏览器输出This is some <b>bold</b> text.

源代码:This is some &lt;b&gt;bold&lt;/b&gt; text. 

 

7.去除空格和两侧的字符串trim() 函数

 移除字符串两侧的字符("Hello" 中的 "He" 以及 "World" 中的 "d!"):

$str = "Hello World!"; echo $str . "<br>";
echo trim($str,"Hed!");

// Hello World!

// llo Worl 

 

8.substr_replace() 函数用于把字符串的一部分替换为另一个字符串,返回混合类型。

echo substr_replace('abcdef', '###', 1); //输出 a### 
echo substr_replace('abcdef', '###', 1, 2); //输出 a###def 
echo substr_replace('abcdef', '###', -3, 2); //输出 abc###f 
echo substr_replace('abcdef', '###', 1, -2); //输出 a###ef 

 

9.str_replace() 函数使用一个字符串替换字符串中的另一些字符,返回混合类型。
echo str_replace("world","earth","Hello world!"); 
//输出 Hello earth! //替换多个,且第二个参数为空字符 
echo str_replace("o","","Hello world!");
//输出 Hell wrld! 

//使用数组 
$arr = array("e", "o"); 
$arr2 = array("x", "y"); 
echo str_replace($arr, $arr2, "Hello World of PHP", $i); 
//输出 Hxlly Wyrld yf PHP 
echo $i; 
//输出4 

正则替换 preg_replace()函数

$str = 'linux is very much php';

echo preg_replace('/linux|php/','java',$str);

//java is very much java
$date = '08/26/2003';
echo preg_replace('/(\d+)\/(\d+)\/(\d+)/','$3/$1/$2',$date);

//2003/08/26

 

10.搜索字符串在另一字符串中的第一次出现。strstr() 函数
//查找 "Shanghai" 在 "I love Shanghai!" 中的第一次出现,并返回字符串的剩余部分: 

echo strstr("I love Shanghai!","Shanghai");

//Shanghai!

//第三个参数为true时并返回字符串的前面部分

echo strstr("I love Shanghai!","Shanghai",true);

//I love

 

11.计算某段字符串中,某个字符出现的次数substr_count()函数

$text='gdfgfdgd59gmkblg';

echo substr_count($text,'g');

//5

 

12.函数查找字符串在另一字符串中第一次出现的位置:strpos()函数,区分大小写

echo strpos("You love php, I love php too!","php");
//9

 

13.查找 "php" 在字符串中最后一次出现的位置:strrpos(),不区分大小写

echo strrpos("You love php, I love php too!","php");

//21

获取文件名

$str = '/web/a/b/index.php';

$pos = strrpos($str,'/');
echo substr($str, $pos+1);

//index.php

 

14.preg_match() 函数用于进行正则表达式匹配,成功返回 1 ,否则返回 0 。

//模式分隔符后的"i"标记这是一个大小写不敏感的搜索
if (preg_match("/php/i", "PHP is the web scripting language of choice.")) {
    echo "查找到匹配的字符串 php。";
} else {
    echo "未发现匹配的字符串 php。";
}

//查找到匹配的字符串 php。

preg_match() 第一次匹配成功后就会停止匹配,如果要实现全部结果的匹配,即搜索到subject结尾处,则需使用 preg_match_all() 函数。 

$str = "pap is pbp and pcp";

preg_match_all('/p.p/', $str, $ms);

echo "<pre>";
print_r($ms);
echo "</pre>";

/*Array
(
    [0] => Array
        (
            [0] => pap
            [1] => pbp
            [2] => pcp
        )

)
*/

 

15.pathinfo() 返回一个关联数组包含有 path 的信息

$ref = 'http://localhost/a/b/index.php';

$arr = pathinfo($ref);
echo "<pre>";
print_r($arr);
echo "</pre>";
/*
Array
(
    [dirname] => http://localhost/a/b  url路径
    [basename] => index.php 完整文件名
    [extension] => php  文件后缀 
    [filename] => index  文件名
)

*/
$ref = 'http://localhost/a/b/index.php?id=10';

$arr = parse_url($ref);
$arr2 = pathinfo($ref);
print_r($arr);
/*Array
(
    [scheme] => http  协议
    [host] => localhost 主机
    [path] => /a/b/index.php 路径
    [query] => id=10 参数
)*/

 

 

 

 

 

 

posted @ 2018-04-07 16:15  ningxiner1108  阅读(142)  评论(0编辑  收藏  举报