php 字符串

/************************************第五章  字符串*****************************************/
/第一题({}[])///
echo'<br>'."第一题第一题({}[])".'<br>';
/*$str="abcdefghijklmnopqrstuvwxyz";
$ary=array(15,7,15);
foreach($ary as $v)
{
    //echo $v;
    echo $str{$v};//大括号和中括号的区别是什么
    //echo $str[$v];
}*/

//第二题(implode)///
echo'<br>'."第二题(implode)".'<br>';
/*$str1='abc';
$str2='def';
//echo $str1+$str2;//0
//echo "{$str1}";//abc
//echo "{$str1}{$str2}";//abcdef
//echo $str1.$str2;//abcdef
//echo implode('',array($str1,$str2));//implode ( string $glue , array $pieces ) : string;implode ( array $pieces ) : string(两种参数顺序)将一维数组的值连接为一个字符串。
echo implode(array($str1,$str2));*/

//第三题(substr,strpos,strstr,strchr,strrpos)/
echo'<br>'."第三题(substr,strpos,strstr,strchr,strrpos)".'<br>';
//$email="user@example.com";
//echo substr($email,strpos($email,'@'));//结果:@example.com
//echo substr($email,strpos($email,'@')+1);//结果:example.com
/*语法:substr ( string $string , int $start [, int $length ] ) : stringsubstr ( string $string , int $start [, int $length ] ) :
定义:string返回字符串 string 由 start 和 length 参数指定的子字符串。*/

//echo strpos($email,'@');//4
/*语法:strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) : int
定义:返回 needle 在 haystack 中首次出现的数字位置。*/

//echo strrpos($email,'@');//结果:4
/*语法:strrpos ( string $haystack , string $needle [, int $offset = 0 ] ) : int
定义:返回字符串 haystack 中 needle 最后一次出现的数字位置*/

//echo strstr($email,'@');//结果:@example.com
/*语法:strstr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] ) : string
定义:返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。*/

//echo strchr($email,'@');//结果:@example.com
/*语法:strchr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] ) : string
定义:strstr的别名 返回 haystack 字符串从 needle 第一次出现的位置开始到 haystack 结尾的字符串。*/

/第四题(extract,explode,strtok)/
echo'<br>'."第四题(extract,explode,strtok)".'<br>';
//$str='1,2,3,4';
//echo extract($str);
//问题:什么是字符表
/*语法:extract ( array &$array [, int $flags = EXTR_OVERWRITE [, string $prefix = NULL ]] ) : int
定义:将变量从数组中导入到当前的符号表中。*/

//print_r(explode(',',$str));//结果:Array([0]=>1[1]=>2[2]=>3[3]=>4)
/*语法:explode ( string $delimiter , string $string [, int $limit ] ) : array
定义:返回数组,每个元素都是 string 的一个子串,它们被字符串 delimiter 作为边界点分割出来。*/

//var_dump(strtok($str,','));//结果:1
//问题:为什么结果会是1
/*语法:strtok ( string $str , string $token ) : string  第二种:strtok ( string $token ) : string
定义:将字符串 str 分割为若干子字符串,每个子字符串以 token 中的字符分割
用法:如果字符串是 "This is an example string",你可以使用空格字符将这句话分割成独立的单词。*/

//第五题(==,strcasecmp,strcmp)
echo'<br>'."第五题(==,strcasecmp,strcmp)".'<br>';
//$str1='abc';
//$str2='ABC';
//echo $str1==$str2;//结果:无

//echo strcasecmp($str1,$str2);//结果:0
/*语法:strcasecmp ( string $str1 , string $str2 ) : int
定义:二进制比较字符串 str1 < str2 返回 < 0; 如果 str1 > str2 返回 > 0;如果相等,返回 0。
注意:不区分大小写*/

//echo strcmp($str1,$str2);//结果:1
/*语法:strcmp ( string $str1 , string $str2 ) : int
定义:二进制比较字符串 str1 < str2 返回 < 0; 如果 str1 > str2 返回 > 0;如果相等,返回 0。
注意:区分大小写*/

///第六题(正则,preg_match)//
echo'<br>'."第六题(正则,preg_match)".'<br>';
//正则表达式
/*组成:元字符、文本字符
注意:区分大小写
定界符:/
元字符:
    行定位符:^行的开始  列子:^tm以tm开头的字符;
               $行的结尾  例子:tm$以tm结尾的字符;
               字符随意位置 例子:tm包含tm的字符
    单词分界符:\b完整的单词 例子:\btm\b包含tm完整单词的字符
                 \B不完整的单词 例子:\Btm\B包含tm一部分单词的字符
    字符类:[]单字符匹配  例子:[Tt][Mm]不区分大小写写法
            (|)选择字符 例子:(M|m)字符串有M或
             -连字符 例子:[a-zA-Z]所有字母集
             [^]排除字符 例子:[^a-z]去掉所有小写字母
              限定符:
                    ?匹配前面字符零次或一次 例子:go?g结果为gg或者gog
                    +匹配前面字符一次或多次 例子:go+g结果为gog或者go……g
                    *匹配前面字符零次或多次 例子:go*g结果为gg或者go……g
                    {n}匹配前面字符n次 例子:go{2}g结果为goog
                    {n,}匹配前面字符最少n次 例子:go{2,}g结果为goog或者go……g
                    {n,m}前面字符最少n次最多m次 例子:go{0,1}g结果为gg或者gog
              .点字符匹配换行符外任意字符 例子:^r.s.*t结果为r[a-zA-Z]s[a-zA-Z]*t
              ()括号字符改变限定符范围还有分组 例子:(thir|four)th结果为thirth或者fourth
              ()\反相引用 等我看懂在说*/
//$str='/.*/';//结果:1
//$str='/...|......../';//结果:1
//$str='/\d{3}\|\d{8}/';//结果为:0
//$str='/[az]{3}\|[az]{9}/';//结果为:0
//$str='/[a-z][a-z][a-z]\|\w{9}/';//结果为:0  \w:任意大小写字母和数子 \W:任意非单词字符
//$str2='php|architec';
//echo preg_match($str,$str2);
/*语法:preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] ) : int
定义:搜索subject与pattern给定的正则表达式的一个匹配.返回0或1*/

第七题(md5,sha1,str_rot13,crypt,crc32)///
echo'<br>'."第七题(md5,sha1,str_rot13,crypt,crc32)".'<br>';
//问题:字符串完整性是什么
//$str='abcd';
//echo md5($str);//结果:e2fc714c4727ee9395f324cd2e7f331f
/*语法:md5 ( string $str [, bool $raw_output = FALSE ] ) : string
定义:计算字符串的 MD5 散列值*/

//echo sha1($str);//结果为:81fe8bfe87576c3ecb22426f8e57847382917acf
/*语法:sha1 ( string $str [, bool $raw_output = false ] ) : string
定义:计算字符串的 sha1 散列值*/

//echo str_rot13($str);//结果:nopq
/*语法:str_rot13 ( string $str ) : string
定义:对 str 参数执行 ROT13 编码并将结果字符串返回。
注意:编码和解码都使用相同的函数,传递一个编码过的字符串作为参数,将得到原始字符串。*/

//echo @crypt($str);//结果:$ 1 $ 9m5.c3 /.$ 0K1tYCs8uT8kjDYEJjefA /
/*语法:crypt ( string $str [, string $salt ] ) : string
定义:返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。
注意:如果没有salt,crypt()创建出来的会是弱密码。 php5.6及之后在没有它会抛出一个E_NOTICE级别错误。*/

//echo crc32($str);//结果:-310194927
/*语法:crc32 ( string $str ) : int
定义:生成 str 的 32 位循环冗余校验码多项式。这通常用于检查传输的数据是否完整。
注意:由于 PHP 的整数是带符号的,所以在 32 位系统上许多 crc32 校验码将返回负整数。*/

///第八题(file_get_contents,fopen,fread,flock,split_string,file)/
echo'<br>'."第八题(file_get_contents,fopen,fread,flock,split_string,file)".'<br>';
function my_funct($filename)
{
    $f=file_get_contents($filename);
/*  语法:file_get_contents ( string $filename [, bool $use_include_path = false [, resource $context [, int $offset = -1 [, int $maxlen ]]]] ) : string
    定义:把文件读入一个字符串。offset 所指定的位置开始读取长度为 maxlen 的内容失败返回 FALSE。
    用法:是用来将文件的内容读入到一个字符串中的首选方法*/
   return explode('\n',$f);
}
//print_r(my_funct('text.txt'));

//var_dump(fopen("text.txt","r"));
/*语法:fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] ) : resource
定义:fopen() 将 filename 指定的名字资源绑定到一个流上。*/

//fread(fopen("text.txt","r"),10);
/*语法:fread ( resource $handle , int $length ) : string
定义:从文件指针 handle 读取最多 length 个字节
注意:读取了 length 个字节/到达了文件末尾(EOF)停止读取文件。*/

//echo flock(fopen("text.txt",'r'),LOCK_SH);
/*语法:flock ( resource $handle , int $operation [, int &$wouldblock ] ) : bool
定义:轻便的咨询文件锁定*/

//split_string();
//备注:未找到

//print_r(file("text.txt"));
/*语法:file ( string $filename [, int $flags = 0 [, resource $context ]] ) : array
定义:把整个文件读入一个数组中。
用方法:可以通过 file_get_contents() 以字符串形式获取文件的内容。*/

第九题(preg_split,ereg,str_split,chop)
echo'<br>'."第九题(preg_split,ereg,str_split,chop)".'<br>';
//$str='a,b,c,d,e';
//$pattern='/[,]/';
//print_r(preg_split($pattern,$str));//结果:Array(0=>a 1=>b 2=>c 3=>d 4=>e);
/*语法:preg_split ( string $pattern , string $subject [, int $limit = -1 [, int $flags = 0 ]] ) : array
定义: 通过一个正则表达式分隔字符串失败时返回 FALSE。*/

//echo ereg('/[a-e]{5}/',$str);
//备注:已经弃用
/*语法:ereg ( string $pattern , string $string [, array &$regs ] ) : int
定义:正则表达式匹配
注意: preg_match() 函数通常是比 ereg() 更快的替代方案。*/

//print_r(str_split($str));//结果:Array ( [0] => a [1] => , [2] => b [3] => , [4] => c [5] => , [6] => d [7] => , [8] => e )
/*语法:str_split ( string $string [, int $split_length = 1 ] ) : array
定义: 将字符串转换为数组*/

//echo chop($str);//结果:a,b,c,d,e
/*语法:chop ( string $str [, string $character_mask ] ) : string
定义:删除字符串末端的空白字符(或者其他字符)rtrim()的别名
注意:chop() 与 Perl 的 chop() 函数有所不同,它会删除字符串的最后一个字符。*/

第十题(1+2在.运算的写法)/
echo'<br>'."第十题(1+2在.运算的写法)".'<br>';
//echo "Testing".1+2.'45';//结果:错误
//echo "Testing".(1+2).'45';//结果:Testing345

第11题(通过下标改变字符串的值)//
echo'<br>'."第11题(通过下标改变字符串的值)".'<br>';
//$s='1234';
//$s[$s[1]]='2';
//echo $s;//结果:1224

第12题(正则表达式用法)
echo'<br>'."第12题(正则表达式用法)".'<br>';
echo "问题:怎么输出一个正则表达式".'<br>';
//$pattern='/.*\*123\d/';//理解:一个换行符外任意字符 + * + 123 + 任意一个十进制数
//echo preg_match($pattern,'_*1234');//结果:1

第13题(字符逻辑认知,==,===)/
echo'<br>'."第13题(字符逻辑认知,==,===)".'<br>';
echo "问题:字符等于零?".'<br>';
//var_dump('1top'=='1');//结果:false
//var_dump('top'==0);//结果:true
//var_dump('top'===0);//结果:false
//echo 'a'==a;//结果:错误
//var_dump(123=='123');//结果:true

第14题(字符+整数=?)//
echo'<br>'."第14题(字符+整数=?)".'<br>';
//echo "1p1"+10;//结果:11

第15题(strip_tags,fgetss)//
echo'<br>'."第15题(strip_tags,fgetss)".'<br>';
//$s=file_get_contents('http://www.php.net');
//strip_tags($s,array('p'));
/*语法:strip_tags ( string $str [, string $allowable_tags ] ) : string
定义:返回给定的字符串 str 去除空字符、HTML 和 PHP 标记后的结果。
注意:它使用与函数 fgetss() 一样的机制去除标记
    语法:fgetss ( resource $handle [, int $length [, string $allowable_tags ]] ) : string
    定义:尝试从读取的文本中去掉任何 HTML 和 PHP 标记。*/
//echo count($s);//结果:剔除<p>标签后的 www.php.net 主页的字符数

第16题(stricmp,stristr)//
echo'<br>'."第16题(stricmp,stristr)".'<br>';
//$str1='abc';
//$str2='ABC';
//echo strcmp($str1,$str2);//结果:1

//echo stricmp($str1,$str2);
//备注;未找到该函数

//echo strcasecmp($str1,$str2);//结果:0

//echo stristr($str1,'b');//结果:bc
/*语法:stristr ( string $haystack , mixed $needle [, bool $before_needle = FALSE ] ) : string
定义:返回 haystack 字符串从 needle 第一次出现的位置开始到结尾的字符串。 未找到返回 FALSE。
用法: strstr() 函数的忽略大小写版本*/

第17题(encode_hex,pack,hex2bin,bin2hex,printf)//
echo'<br>'."第17题(encode_hex,pack,hex2bin,bin2hex,printf)".'<br>';
echo "问题:函数没一个看懂了的".'<br>';
//$str='1011';
//echo encode_hex($str);
//备注:未找到该函数

//echo pack($str);
/*语法:pack ( string $format [, mixed $args [, mixed $... ]] ) : string
定义:根据format将给地的参数打包成二进制字符串。
注意:在那些使用有符号和无符号格式代码的地方pack()函数产生相同的结果。*/

//echo hex2bin($str);//结果:乱码
/*语法:hex2bin ( string $data ) : string
定义:转换十六进制字符串为二进制字符串。*/

//echo bin2hex($str);//结果:31303131
/*语法:bin2hex ( string $str ) : string
定义:把二进制的参数 str 转换为的十六进制的字符串。转换使用字节方式,高四位字节优先。*/

//printf($str);//结果:1011
/*语法:printf ( string $format [, mixed $args [, mixed $... ]] ) : int
定义:依据 format 格式参数产生输出。返回输出字符串的长度。*/

第18题()//
echo'<br>'."第18题".'<br>';
//$str='adcde';
//echo str_pad($str,10,'a');//结果:abcdeaaaaa;
/*语法:str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] ) : string
定义:返回 input从左端/右端/两端被填充到指定长度后的结果
注意:pad_string没有指定,将被空格字符填充。*/

第19题(wordwrap)//
echo'<br>'."第19题(wordwrap)".'<br>';
//$a='able osts indy';
//echo wordwrap($a,1,'c',false);//结果:ablecostscindy
/*语法:wordwrap ( string $str [, int $width = 75 [, string $break = "\n" [, bool $cut = FALSE ]]] ) : string
定义:使用字符串断点将字符串打断为指定数量的字串。返回打断后的字符串。*/

第20题()//
echo'<br>'."第20题".'<br>';
$x='apple';
echo substr_replace($x,'x',1,2);//结果:axle
/*语法:substr_replace ( mixed $string , mixed $replacement , mixed $start [, mixed $length ] ) : mixed
定义:在string的副本中将由 start 和可选的 length 参数限定的子字符串使用 replacement替换。*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值