继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

php操作字符串函数

会当凌绝顶聪明
关注TA
已关注
手记 240
粉丝 36
获赞 122

<?php

header('content-type:text/html;charset=utf-8;');

// addcslashes(str, charlist):函数在指定的字符前加反斜杠

// 注释:在对 0,r,n 和 t 应用 addcslashes() 时要小心。

// 在 PHP 中,\0,\r,\n 和 \t 是预定义的转义序列。

//stripcslashes(string):删除由addcslashes()函数添加的反斜杠

$str="Hello,my name is John Adams.";

echo $str;

echo '<br>';

echo addcslashes($str,'mi');


// addslashes(str):函数在指定的预定义字符前添加反斜杠

// 有单引号、双引号,反斜杠、null等

// 注:默认情况下,php指令magic_quotes_gpc为on,对所有GET

// POST和COOKIE数据自动运行addslashes().不要对已经被magic_quotes_gpc

// 转义过的字符串使用addslashes(),因为这样会导致双层转义。

// 遇到这种情况可以使用get_magic_quotes_gpc()进行检测。

//stripslashes(str):删除由addslashes函数添加的反斜杠

$str="Who's Jhon Adams?";

echo '<br>';

echo addslashes($str);


// quotemeta(str):函数在某些预定义的字符前添加反斜杠

// 预定义字符有:

// 句号 (.)

// 反斜杠 (\)

// 加号 (+)

// 星号 (*)

// 问号 (?)

// 方括号 ([])

// 脱字符号 (^)

// 美元符号 ($)

// 圆括号 (())

$str='Hello,(can you hear me?)';

echo '<br>';

echo quotemeta($str);


// chop(string,charlist):函数从字符串的末端开始删除空白字符或其他预定义字符。

// 是rtrim()函数的别名。

// ltrim()从左边

//trim()从两边

$str="Hello World!\r\t";

echo '<br>';

echo $str;

echo chop($str);


// chr(ascii):函数从指定的ASCII值返回字符

// ord(strig):函数返回第一个字符的ASCII

echo '<br>';

echo chr(97);

echo '<br>';

echo ord('abc');


// chunk_split(string,length,end):函数把字符串分割为一连串更小的部分

$str="Hello World";

echo '<br>';

echo chunk_split($str,2,'?');


// convert_uuencode(str):函数使用使用uuencode算法对 字符串进行编码

// convert_uudecode(str):函数对uuencode编码的字符串进行解码

$str="Hello World!";

echo '<br>编码后:';

echo $strto=convert_uuencode($str);

echo '<br>解码后:';

echo convert_uudecode($strto);


// count_chars(string,mode):函数返回字符串所用字符信息

// string 必需。规定要检查的字符串。

// mode 可选。规定返回模式。默认是 0。有以下不同的返回模式

// 0 - 数组,ASCII 值为键名,出现的次数为键值

// 1 - 数组,ASCII 值为键名,出现的次数为键值,只列出出现次数大于 0 的值

// 0 - 数组,ASCII 值为键名,出现的次数为键值,只列出出现次数等于 0 的值

// 3 - 字符串,带有所有使用过的不同的字符

// 3 - 字符串,带有所有未使用过的不同的字符

$str="Hello World!";

echo '<br>';

print_r(count_chars($str,1));

echo '<br>';

echo count_chars($str,3);


// explode(delimiter, string,limit):将字符串分割为数组,limit规定数组的最大个数 

//implode(separator,array):函数把数组元素组合为一个字符串

//join(separator,array):



// html_entity_decode(string,quotestyle,character-set):函数把HTML实体转换为字符

// 是htmlentities()的反函数

/*

string:必须,规定要解码的字符串。

quotestyle:可选,规定如何解码单引号和双引号,可选项有:

ENT_COMPAT-默认,仅解码双引号

ENT_QUOTES-解码双引号和单引号

ENT_NOQUOTES-不解码任何引号

character-set:可选,规定要使用的字符集

ISO-8859-1默认。西欧

UTF-8,兼容多字节8笔特Unicode

提示:无法被识别的字符集将被忽略,并由 ISO-8859-1 代替。

*/

// htmlentities(string,quotestyle,character-set):函数把字符转换为html实体

// htmlspecialchars(string,quotestyle,character-set):函数把一些预定义的字符转换为html实体

// 预定义字符有:

// & (和号) 成为 &amp;

// " (双引号) 成为 &quot;

// (单引号) 成为 &#039;

// < (小于) 成为 &lt;

// > (大于) 成为 &gt;

$str="A 'quote' is &<b>bold</b>";//htmlentities,html标签会原样输出

echo '<br>编码:';

echo htmlentities($str,ENT_COMPAT);

echo '<br>';

echo htmlspecialchars($str,ENT_QUOTES);

echo '<br>';

echo $strto=htmlentities($str,ENT_QUOTES);

echo '<br>解码:';

echo html_entity_decode($strto,ENT_QUOTES);


// levenshtein(str1, str2,insert,replace,delete):返回两个字符之间的Levenshtein距离

// Levenshtein 距离,又称编辑距离,指的是两个字符串之间,由一个转换成另一个所需的最少编辑操作次数。

// 许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。

// 例如把 kitten 转换为 sitting:

// sitten (k→s)

// sittin (e→i)

// sitting (→g)

// levenshtein() 函数给每个操作(替换、插入和删除)相同的权重。不过,您可以通过设置可选的 insert、

// replace、delete 参数,来定义每个操作的代价。

//各参数的意思

//string1 必需。要对比的第一个字符串。

// string2 必需。要对比的第二个字符串。

// insert 可选。插入一个字符的代价。默认是 1。

// replace 可选。替换一个字符的代价。默认是 1。

// delete 可选。删除一个字符的代价。默认是 1。

echo '<br>';

echo levenshtein('str1', 'str2');

echo '<br>';

// similar_text(first, second,percent):函数计算两个字符串的匹配字符的数目

// percent,参数可选返回,两个字符串的相似程度的百分比

echo '<br>';

echo similar_text('aa','Helladca');



// metaphone(str,length):函数计算字符串的metaphone键。

// metaphone键字符串的英语发音

// metaphone()函数用于拼写检查应用程序

// 如果成功返回metphone键,如果失败则返回false

echo metaphone('sun');

echo '<br>';

echo metaphone('son');


// nl2br(string):函数在字符串中的每个新行(\n)之前插入html换行符(<br>);

$str="One line.\nAnother line.";//必须用双引号才有效

echo '<br>';

echo nl2br($str);


// number_format(number,decimals,decimalpoint,separator):函数通过千分位分组来格式化数字

// decimals:保留几位小数

// deccimalpoint:显示小数点的字符串

// separator,千分位分隔符的字符串

echo '<br>';

echo number_format(10000,2,'*','&');

echo '<br>';

echo number_format(10000.2);//默认不保留小数


// parse_str(str,arr):函数把查询字符串解析到变量中。

// str,必须规定要解析的字符串

// arr,可选,规定存储变量的数组名称,该参数指示变量存储到数组中

// 如果未设置arr参数,由该函数设置的变量将覆盖已有的同名变量

// 注:如果在php.ini中开启了magic_quotes_gpc,那么在parse_str

//解析前,变量会被addslashes转换。


$str='id=23&name=John%20Adams';

parse_str($str);

echo '<br>';

echo $name;


// printf(format,arg1,arg2...):格式化输出字符串

// print 和echo一样,但稍慢于echo

//sprintf(format,arg1,arg2,...):函数把格式化的字符串写入到一个变量中

// %% - 返回百分比符号

// %b - 二进制数

// %c - 依照 ASCII 值的字符

// %d - 带符号十进制数

// %e - 可续计数法(比如 1.5e+3)

// %u - 无符号十进制数

// %f - 浮点数(local settings aware)

// %F - 浮点数(not local settings aware)

// %o - 八进制数

// %s - 字符串

// %x - 十六进制数(小写字母)

// %X - 十六进制数(大写字母)

$str='huge';

$str1='wp';

echo '<br>';

printf('%s AND %s',$str,$str1);//%s输出字符串

printf('%f',100);//%f保留两位小数

echo '<br>';

$number = 123.2;

printf("%1\$.2f",$number);//占位符,只能用双引号


// sscanf(str, format,arg1,arg2,...):函数根据指定的格式解析来自一个字符串的输入

// 如果只向该函数传递两个参数,数据可以以数组的形式返回,否则,如果传递了额外的参数

// 那么被解析的数据会存储在这些参数中。如果区分符的数目大于包含她们变量的数目,则会

// 发生错误,不过,如果区分符少于变量,则额外的变量包含null。

echo '<br>';

$string = "age:30 weight:60kg";

echo sscanf($string,"age:%d weight:%dkg",$age,$weight);

echo '<br>';

echo $age;


// str_replace(search, replace, subject,count):函数使用一个字符串替换字符串中的另一些字符

//该函数对大小写敏感

//str_ireplace(search, replace, subject,count),该函数对大小写不敏感

$str='Hello,World';

echo '<br>大小写不敏感:';

echo str_ireplace('world','huge',$str);

echo '<br>';

echo '<br>大小写敏感:';

echo str_replace('World','huge',$str);


// strtr(str, from, to):函数转换字符串中特定的字符。也可以传入数组

echo '<br>';

echo strtr('Hilla,World', 'ia','eo');

$arr=array('Hello'=>'Hi','World'=>'huge');

echo '<br>';

echo strtr('Hello World', $arr);


// str_pad(input, pad_length,pad_string,pad_type):函数把字符串填充为指定的长度

// input 必需。规定要填充的字符串。

// pad_length 必需。规定新字符串的长度。如果该值小于原始字符串的长度,则不进行任何操作。

// pad_string 可选。规定供填充使用的字符串。默认是空白。

// pad_type 可选。规定填充字符串的那边

// 可能的值

// STR_PAD_BOTH - 平均填充到字符串的两头。如果不是偶数,则右侧获得额外的填充。

// STR_PAD_LEFT - 填充到字符串的左侧。

// STR_PAD_RIGHT - 填充到字符串的右侧。这是默认的。

$str="Hello World";

echo '<br>';

echo str_pad($str,20,'huge',STR_PAD_BOTH);


// str_repeat(string,repeat):函数把字符串重复指定的次数

echo '<br>';

echo str_repeat('huge',10);


// str_rot13(str):函数对字符串执行ROT13编码,

// ROT-13 编码是一种每一个字母被另一个字母代替的方法。这个代替字母是由原来的字母向前移动 13 个字母而得到的。数字和非字母字符保持不变。

//该函数解码函数是其本身,只要调用两次就行了

$str='huge';

echo '<br>编码:';

echo $strto=str_rot13($str);

echo '<br>解码:';

echo str_rot13($strto);


// str_shuffle(str):函数随机地打乱字符串中的所有字符,可用于生成验证码

echo '<br>';

echo str_shuffle('huge');


// str_split(str,len):函数按指定的长度把字符串分割到数组中

//len,默认是1

echo '<br>';

print_r(str_split('huge',2));


// strcasecmp(str1,str2):函数对两个字符串进行比较

// 前者=后者 0;<,小于0,;>,大于0

//函数对大小写不敏感

//strcmp(str1,str2):对大小写敏感

echo '<br>';

echo strcasecmp('sta1', 'str2');


// substr_compare(str1, str2, startpos,len,case):函数从指定开始长度

//比较两个字符串,case,指定是否对大小写敏感,默认为false,敏感


// strrchr(str,search):函数搜索一个字符串在另一个字符串中第一次出现。

//函数返回从匹配点开始的奇遇部分,如果未找到,则返回false

//该函数是strstr的别名

//如果要进行大小写不敏感的查找,则用stristr

//参数都是一样的

// strpbrk(haystack, char_list):函数在字符串中搜索指定字符中的任意一个

// 该函数返回指定字符第一次出现的位置开始的剩余部分。如果没有找到则返回false

echo '<br>';

echo strchr('huge','u');

echo '<br>';

echo strpbrk("Hello world",'oe');


// str_word_count(str,type,char):函数计算字符串中的单词数

// type:可选,规定str_word_count()的返回值,可选值有

// 0-默认,返回查找单词的数目

// 1-返回包含字符串中的单词的数组

// 2,-返回一个数组,其中的键是单词在字符串中的位置,值是实际IDE单词

// char:可选,规定被认为单词的特殊字符。

echo '<br>';

echo str_word_count('Hello world');

echo '<br>';

print_r(str_word_count('Hello word',2));


//strcspn(str, char,start,len):函数返回要查找的字符的位置

//如果char给定多个值,则返回最早出现的字符的位置

echo '<br>';

echo strcspn("Hello world","w");


// strip_tags(str,allow):函数剥去HTML,XML以及PHP标签

// allow,可选,规定允许的标签,这些标签不会被删除

$str='hello,<b>world</b>';

echo '<br>';

echo strip_tags($str);

echo '<br>';

echo strip_tags($str,'<b>');


// stripos(str,find,start):函数返回在另一个字符串中第一次出现的位置

//该函数对大小写不敏感

//strpos(str,find,start):对大小写敏感

//strripos(str,find,start):函数返回在另一个字符串中最后一次出现的位置

//对大小写不敏感

//strrpos(str,find,start):对大小写敏感

echo '<br>';

echo stripos('Hello world','el');


// strlen(string):返回字符串的长度


//strnatcasecmp(str1,str2):函数使用一种"自然"算法来比较两个字符串

//自然算法中,数字'2'小于'10';对大小写不敏感


// strnatcmp(str1, str2):对大小写敏感


// strncasecmp(str1, str2, len):比较两个字符串从起始位置指定长度的部分

//对大小写不敏感

//strncmp:对大小写敏感


// strrev(string):函数翻转字符串

echo '<br>';

echo strrev('huge');


// substr(string, start,len):函数返回字符串的一部分

// start,和len都可以为负值,负值表示从字符串末端开始返回


// strspn(str,charlist,start,len):计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度。

echo '<br>';

echo strspn("Hello world!","Hlleo ");

echo '<br>';

echo strspn("42 is the answer to the 128th question.", "1234567890");

// $var 将被指派为 2,因为 '42' 是 subject 中第一段全部字符都存在

// 于 '1234567890' 的连续字符。


// strtok(str, token):函数把字符串分割为更小的字符串

$str="Hello world. Beautiful day today";

$token=strtok($str,' ');

echo '<br>';

while ($token!==false) {//函数会记住字符串的位置

echo $token;

echo ",";

$token=strtok(' ');

}


// strtolower(str):函数把字符串转换为小写

// strtocase(str):转换为大写


// substr_count(haystack, needle,start,len):函数计算子串在字符串中出现的次数

echo '<br>';

echo substr_count("Hello world. The world is nice","world");


// substr_replace(string, replacement, start,len):函数把字符串的一部分替换为另一个字符串

echo '<br>';

echo substr_replace('Hello world', 'huge',6);


//ucfirst(str):函数把字符中的首字符转换为大写

//ucwords(str):函数把字符串中的每个单词的首字符转换为大写

$str='hello huge';

echo '<br>';

echo ucfirst($str);

echo '<br>';

echo ucwords($str);//只有用空格分开的才识别


// wordwrap(str,width,break,cut):str,必须,其他可选

// 函数按照指定长度对字符串进行拆分处理

// 如果成功,则返回拆分后的字符串,失败,则返回false

// width:规定最大行宽度,默认75

// 规定作为分隔符使用的字符,默认是"\n"

// cut,规定是否对大约指定宽度的单词进行拆分。默认是false

$str='An example on a long word is: Supercalifragulistic';

echo '<br>';

echo wordwrap($str,10,'<br>');


// utf8_encode(data):函数把ISO-8859-1字符串编码为UTF-8

// utf8_decode(data):函数把utf-8编码转换为ISO-8859-1




?>


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP