词条信息

admin
admin
超级管理员
词条创建者 发短消息   

相关词条

热门词条

更多>>
什么是端口?到底是做什么的呢?
端口一般指两种,一种是硬件比如路由器或者交换机的插网线的端口,一种是软件的逻辑的概念,比如http的80端口!...
7种进阶方法让你快速测试端口连通性
Ping是Windows、Linux和Unix系统下的一个检查网络连通性的命令工具,对于大部分互联网用户来说很...
电脑开机,总需要按F1,是什么原因造成的?
一.主板掉电这个说法是行业内的叫法了,一般是主板的CMOS电池没电了导致的。也是最常见的一种提示你按F1的提示...
社保降费对个人有什么影响?
下调城镇职工基本养老保险单位缴费比例是政府给企业发的一个大红包,特别是对于企业来说是一个利好,但是对个人来说有...
车辆“出险”对下年保费的影响,到底有多大?
【出险对交强险的影响】【出险对商业险的影响】车辆“出险”对下年保费的影响,到底有多大?这里有必要先提下车险第三...

精选图集

更多>>
简易百科旧版 >>所属分类 >> 程序开发    PHP   

PHP中的字符串函数

标签: php

顶[0] 发表评论(0) 编辑词条

substr()函数可以对字符串进行截取,substr()函数可以有三个参数,第二个参数如果是空,那么默认就为0,如果我负数,就表示从后往前计数,第三个参数如果是正数,表示字符串截取的长度,如果省略,则会一直截取到最后,如果是负数,则表示从后往前截取到的位置。

<?php

echo substr('abcdef',3, 2);   // 显示 de

echo substr('abcdef',"", 2);   // 显示 ab

echo substr("abcdef", -2);     // 显示 ef

echo substr("abcdef", -3, 1); // 显示 d

echo substr("abcdef", -3, -1); // 显示 de

?>

substr_count()函数的作用是计算字符串中某字符段的出现次数,第三个参数表示在字符串中开始比较的位置,省略则默认从头开始,第四个参数表示依次比较的字符数,省略则表示一直比较到末尾。和substr()函数有所不同的是,这两个参数都不支持负数。


<?php

$text = 'This is a test';

echo substr_count($text, 'is'); // 显示 2

echo substr_count($text, 'is', 3); // 显示 1

echo substr_count($text, 'is', 3, 3); // 显示 0

?>


substr_replace()函数的作用是对字符串中的部分字符进行替换,substr_replace()函数的第三个参数必选,表示需要处理字符的起始位置,负数表示从后往前计数,第四个参数可选,省略表示一直替换到最后,正数表示替换的长度,负数表示从后往前替换到的位置。

<?php

$var = 'ABCDEFGH:/MNRPQR/';

echo substr_replace($var, 'bob', 0); // 显示 bob

echo substr_replace($var, 'bob', 0, 0); // 显示 bobABCDEFGH:/MNRPQR/

echo substr_replace($var, 'bob', 10, -1); // 显示 ABCDEFGH:/bob/

echo substr_replace($var, 'bob', -7, -1); // 显示 ABCDEFGH:/bob/

echo substr_replace($var, '', 10, -1); // 显示 ABCDEFGH://

?>

implode()函数的作用是将数组转变为字符串,explode()函数的作用是将一个字符串转变为一数组形式。implode()函数前两个参数的位置是任意的,而explode()函数则不行。explode()函数第三个参数可选,省略则表示全部返回,正数表示返回的数组中单元的个数,最后一个单元包含了未处理完的字符串,负数表示返回值中将除去最后的若干个单元。join()函数的作用和implode()函数相同,是implode()函数的别名。

<?php

$array = array('lastname', 'email', 'phone');

echo implode($array,","); // 显示 lastname,email,phone

$str = 'one|two|three';

print_r(explode('|', $str));// 显示 Array ( [0] => one [1] => two [2] => three )

print_r(explode('|', $str, 2));// 显示 Array ( [0] => one [1] => two|three )

print_r(explode('|', $str, -1));// 显示 Array ( [0] => one [1] => two )

?>

strtok()函数的作用是用指定的若干个字符来分割字符串,此函数的功能较强大,但是使用方法比较特殊。在连续使用的时候,第一次需要说明字符串和分割符,但是第二次的时候,只要放入分割符就可以,分割符可以是多个内容,但是不能使用字符串,具体请研究下面的例子:

<?php

$string = "This is\tan example\nstring";

$tok = strtok($string, " \n\t");



while ($tok !== false) {

     echo "$tok<br />";

     $tok = strtok(" \n\t");

}

?>

str_split()函数的作用是将一个字符串按照字符间距分割为一个数组,str_split()函数有两个参数,第二个参数可选,默认值为“1”。


<?php

$str1 = "asd";

$str2 = "Hello Friend";

print_r(str_split($str1)); // 显示 Array ( [0] => a [1] => s [2] => d )

print_r($arr2 = str_split($str2, 4)); // 显示 Array ( [0] => Hell [1] => o Fr [2] => iend )

?>


chunk_split()函数的作用是按一定的字符长度将字符串分割成小块,第二个参数可选,表示字符间距,默认为76,第三个参数可选,表示用什么字符进行分割,默认为“\r\n”。


<?php

$str = "asdasdasd";

echo chunk_split($str,3,","); // 显示 asd,asd,asd,

?>


wordwrap()函数的作用是按照一定的字符长度分割字符串,第二个参数可选,表示按多少字符进行分割,默认为75,第三个参数可选,表示用哪个字符分割,默认为“\n”,第四个参数可选,true表示强制打破一个单词,false表示不大破单词,默认为false。

<?php

$text = "A very long woooooooooood asdasd";

echo wordwrap($text, 12, "<br />\n", true); // woooooooooood被打破

echo wordwrap($text, 12, "<br />\n", false); // woooooooooood未被打破

?>

strlen()函数的作用是获取一个字符串的编码长度。

<?php

$text1 = "ABC";

$text2 = "中文";

echo strlen($text1); // 显示 3

echo strlen($text2); // 显示 6

?>


str_word_count()函数的作用是获取字符串里面的英文单词信息,第二个参数可选,0表示只返回单词的个数,1表示将找到的单词作为一个数组返回,2表示找到的单词和单词所在的字符位置信息作为一个联合数组(associative)返回,省略的默认值是0;第三个参数也是可选的,表示需要忽略的断词符号,默认的断词符号有空格,数字等等,有时候需要忽略一些。

<?php

$str = "Hello fri3nd, you're

        looking           good today!";

echo str_word_count($str); // 显示 7

print_r(str_word_count($str, 1));

// 显示 Array ( [0] => Hello [1] => fri [2] => nd [3] => good [4] => today )

print_r(str_word_count($str, 2));

// 显示 Array ( [0] => Hello [6] => fri [10] => nd [14] => good [19] => today )

print_r(str_word_count($str, 1, 'àá~ac3'));

// 显示 Array ( [0] => Hello [1] => fri3nd [2] => good [3] => today )

?>

nl_langinfo()函数的作用是获取某些字符信息,但是没有在windows平台下实现,所以,我以后在讨论。

localeconv()函数的作用是获取数字相关的格式定义。setlocale()函数可以设置关于数字,日期等等的本地格式,相关内容较复杂,这里省略不谈。这两个函数的作用是为了解决在不同的国家地区之间,对数字,货币,日期等字符形式不同的表现内容而进行简易设置的作用。

strrev()函数的作用是将字符串里面的所有字母反向排列。str_shuffle()函数的作用是对一个字符串里面的字符进行随机排序。

<?php

echo strrev("ABC"); // 显示 CBA

$str = 'abcdef';

echo str_shuffle($str);

?>

str_pad()函数的作用是对字符串进行两侧的补白,第二个参数表示补白以后的长度,第三个参数可选,表示进行补白的字符串,默认为空格,第四个参数可选,表示补白的方式,有三个常量可以选择:STR_PAD_RIGHT,STR_PAD_LEFT和STR_PAD_BOTH,分别表示右补白,左补白和两侧补白,默认值为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_"

?>

str_repeat()函数的作用是对字符串进行重复组合,第二个参数表示重复的次数,值为0的时候将返回一个空字符串。

<?php

echo str_repeat("ab", 3); // 显示 ababab

?>

chr()函数的作用是返回一个字符的ASCII码,ord()函数的作用是将一个ASCII码转换为一个字符。

<?php

$str = "a";

echo ord($str); // 显示 97

$asc2 = 97;

echo chr($asc2); //显示 a

?>

strcmp()函数的作用是对字符串进行大小比较,第一个参数大于第二个参数时返回一个大于0的数,小于则返回一个小于0的数,等于则返回0,此函数的比较结果返回值是非常令人困惑的,因而此函数的主要用处是比较两个字符串是否相等。strncmp()函数的作用和strcmp()函数类似,区别是strncmp()函数有第三个必选参数,用来限制进行比较的前N个字符。strcasecmp()的作用和strcmp()函数类似,区别是strcasecmp()函数忽略大小写。strncasecmp()函数的作用和strncmp()函数类似,区别是strncasecmp()函数忽略大小写。strnatcmp()函数的作用和strcmp()函数类似,区别是strnatcmp()函数使用自然排序法对字符串之间进行比较。strnatcasecmp()函数的作用和strnatcmp()函数类似,区别是strnatcasecmp()函数比较时不区分大小写。strcoll()函数的作用和strcmp()函数类似,区别是strcoll()函数会根据本地环境的设置而改变比较的方式,而产生不同的结果,这里暂时跳过不讨论。


<?php

echo strcmp("red", "red"); // 显示 0

echo strncmp("red apple", "red", 3); // 显示 0

echo strcasecmp("Red", "red"); // 显示 0

echo strncasecmp("Red apple", "red", 3); // 显示 0

?>


上面这些函数的另一个作用是被作为回调函数的形式使用(其实也是最主要的用途所在):

<?php

$arr1 = $arr2 = array("img12.png", "img10.png", "img2.png", "img1.png");

usort($arr1, "strcmp");

print_r($arr1); // 显示标准排序以后的结果

usort($arr2, "strnatcmp");

print_r($arr2); // 显示自然排序以后的结果

?>

substr_compare()函数可以对字符串进行截取后的比较,第三个参数表示比较开始的起始位置,第四个参数可选,表示进行比较的长度,省略则表示一直比较到末尾,第五个参数可选,设置为true可以忽略大小写,false表示不忽略大小写,默认值为false。

<?php

echo substr_compare("abcde", "bc", 1, 2); // 显示 0

echo substr_compare("abcde", "bcg", 1, 2); //显示 0

echo substr_compare("abcde", "BC", 1, 2, true); //显示 0

echo substr_compare("abcde", "bc", 1, 3); //显示 1

echo substr_compare("abcde", "cd", 1, 2); //显示 -1

echo substr_compare("abcde", "abc", 5, 1); //显示 报错

?>

similar_text()函数的作用是比较两个字符串,返回系统认为的相似字符个数,第三个参数可选,可以对一个变量附值为相似度百分比。levenshtein()函数的作用是对字符串进行比较,并且返回两个字符串的相似度,有三个可选参数,但是不知道如何使用。

<?

echo similar_text("abcdas", "abdcas", $p); // 显示 5

echo "$p%"; // 显示 83.3333333333%

echo levenshtein("ab", "abcd"); // 显示 2

echo levenshtein("abc", "abcd"); // 显示 1

echo levenshtein("abcd", "abcd"); // 显示 0

?>

soundex()函数的作用是判断一个字符串的发音规则,用4位的字符串表示。metaphone()函数的作用是判断一个字符串的发音规则,和soundex()函数类似,但是显示的是一个不定长的字符串。

<?php

echo soundex("Ellery");     // 显示 E460

echo soundex("Ghosh");      // 显示 G200

echo soundex("Heilbronn"); // 显示 H416

echo metaphone("Ellery");     // 显示 ELR

echo metaphone("Ghosh");      // 显示 FX

echo metaphone("Heilbronn"); // 显示 HLBRN

?>

addslashes()函数的作用是为字符串里面的部分字符添加反斜线转义字符,addslashes()函数只为4个字符添加转义,单引号“’ ”,双引号“””,反斜线“\”和NULL(“\0”)。addcslashes()函数的作用也是对字符串添加转义,但是转义的字符必须由第二个参数指定,第二个参数的使用方法难度太高,跳过不讲。stripslashes()函数的作用和addslashes()函数正好相反,可以将addslashes()函数转义的那4个字符取消转义。同样,stripcslashes()函数的作用和addcslashes()函数相反。quotemeta()函数的作用是对11个特定字符进行转义,包括:. \ + * ? [ ^ ] ( $ ) 似乎是可以用在正则里面。

<?php

echo addslashes("'"\ "); // 显示 \'"\\

echo addcslashes("zoo['.']", 'zo'); // 显示 \z\o\o['.']

echo addcslashes("z"oo['.']", '\'"'); // 显示 z"oo[\'.\']

echo addcslashes('foo[ ]', 'A..z'); // 显示 \f\o\o\[ \]

echo stripslashes(addslashes("'"\ ")); // 显示 '"\

echo stripcslashes(addcslashes("z"oo['.']", '\'"')); // 显示 z"oo['.']

echo quotemeta(". \ + * ?"); // 显示 \. \\ \+ \* \?

?>

htmlspecialchars()函数的作用是将字符串中一些字符转换为HTML实体,默认情况下主要包括这4个字符:“<”,“>”,“&”和“””,分别转换为HTML实体:“<”,“>”,“&”呵“"”。htmlentities()函数的第二个可选参数可以选择引号的转换模式,可以选择三个常量:ENT_COMPAT表示转换双引号但是保留单引号,ENT_QUOTES表示同时转换双引号和单引号,ENT_NOQUOTES表示两个都不转换,默认值为ENT_COMPAT。第三个可选参数表示所转换字符的编码集。htmlspecialchars_decode()函数的作用和htmlspecialchars()函数刚好相反,但是两个函数的使用方法一样。

<?php

$str = "<a href='test'>Test</a>";

echo htmlspecialchars($str); // 显示(源代码里面) <a href='test'>Test</a>

echo htmlspecialchars($str, ENT_QUOTES); // 显示(源代码里面) <a href=&#039;test&#039;>Test</a>

$str = '<a href=&#039;test&#039;>Test</a>';

echo htmlspecialchars_decode($str); // 显示(源代码里面) <a href='test'>Test</a>

?>

htmlentities()函数的用法和htmlspecialchars()函数类似,但是htmlspecialchars()函数会转义更多的HTML里面的字符(请查看手册的htmlspecialchars()函数的表格1《已支持字符集》部分),所以使用时要注意加上第三个参数。html_entity_decode()函数的作用和htmlentities()函数正好相反,但是用法完全一样,使用时也要注意用到第三个参数。


get_html_translation_table()函数的作用是返回可以转换的HTML实体,算是一个比较有意思,也是有趣的工具函数。get_html_translation_table()函数有两个常量参数,第一个参数表示所选择显示哪种转换模式下的内容,HTML_ENTITIES表示大范围的htmlentities()函数所用到的转换内容,HTML_SPECIALCHARS表示小范围的htmlspecialchars()函数所用到的转换内容,第二个参数的三种模式ENT_COMPAT,ENT_QUOTES,ENT_NOQUOTES的作用,可以查看htmlspecialchars()函数里面的介绍。


<?php<meta http-equiv="Content-Type" c />
<?php

$str = "<a href='test'>中文</a>";

echo htmlentities($str,ENT_COMPAT,"UTF-8"); //显示(源代码里面) <a href='test'>涓枃</a>

echo html_entity_decode(htmlentities($str,ENT_COMPAT,"UTF-8"),ENT_COMPAT,"UTF-8"); // 显示(源代码里面) <a href='test'>中文</a>

?>

print_r(get_html_translation_table(HTML_SPECIALCHARS,ENT_QUOTES));

?>


 

nl2br()函数的作用是将字符串中的换行符“\n”替换成“<br />”。

<?php

echo nl2br("foo isn't\n bar"); // 显示(源代码里面) foo isn't<br /> bar

?>

strip_tags()函数的作用是去除一个字符串里面的HTML和PHP代码(其实好像就是去掉“<”开始“>”结尾的字符串,无所谓PHP)。第二个参数表示允许出现的标签对。

<?php

$text = '<p>Test paragraph.</p><em>Other text</em>';

echo strip_tags($text, '<p>'); // 显示 <p>Test paragraph.</p>Other text

?>

parse_str()函数的作用是把一定格式的字符串转变为变量和值,字符串的格式和URL的格式相同。

<?php

parse_str('d=12&c[]=as');

echo $c[0]; // 显示 as

echo $d; // 显示 12

?>

hebrev()函数的作用是将Hebrew编码的字符串转换为可视的文本,hebrevc函数的作用是和hebrev()函数类似,区别是会将字符串里面的“\n”转变为“<br>\n”。hebrev()函数和hebrevc函数的第二个参数用法相同,可以设定每行的显示字符数,行末不会强制打断一个单词。

convert_cyr_string()函数的作用是将斯拉夫语字符转换为别的字符。

bin2hex()函数的作用是将二进制数据转换成十六进制的数据。

str_rot13函数的作用是将字符串进行ROT13加密处理,方法是将所有字符移动13个字母位置,因为英文一共是26个字母,所以该函数的加密解密可以使用同一个函数。

<?php

echo str_rot13('str_rot13'); // 显示 fge_ebg13

echo str_rot13(str_rot13('str_rot13')); // 显示 str_rot13

?>

md5()函数的作用是将一个字符串进行MD5算法加密,返回一个32位的16位字符串,第二个参数如果设置为true,将会返回一个16位的2进制字符串。md5_file()函数的作用是对文件进行MD5加密,使用方式和md5()函数相同。

<?php

echo md5('apple'); //显示 1f3870be274f6c49b3e31a0c6728957f

echo bin2hex(md5('apple', true)); //显示 1f3870be274f6c49b3e31a0c6728957f

?>

sha1()函数的作用是将一个字符串进行SHA1算法加密,返回一个40位的16位字符串,第二个参数如果设置为true,将会返回一个20位的2进制字符串。sha1_file()函数的作用是对文件进行SHA1加密,使用方式和sha1()函数相同。

<?php

$str = 'apple';

echo sha1('apple'); //显示 d0be2dc421be4fcd0172e5afceea3970e2f3d940

echo bin2hex(sha1('apple', true)); //显示 d0be2dc421be4fcd0172e5afceea3970e2f3d940

?>

crypt()函数的作用是对一个字符串进行散列处理,返回一个加密后的字符串。第二个可选参数是一个加密参考量,crypt()函数会根据这个量来产生加密的值,第二个参数如果省略,PHP将会随机产生一个参考量;第二个参数的处理,需要根据4个PHP的预定义常量,PHP会更具预定义常量的设定,对参考量进行处理,再进行加密。

CRYPT_STD_DES – 标准模式,获取参考量的前两位。

CRYPT_EXT_DES – 扩展模式,获取参考量的前九位。

CRYPT_MD5 – MD5模式,参考量为$1$开始的一个常量CRYPT_SALT_LENGTH指定长度的字符串。

CRYPT_BLOWFISH – 河豚模式,参考量为$2$或者$2a$开始的一个16位长的字符串。

<?php

if (CRYPT_STD_DES == 1) {

     echo 'Standard DES: ' . crypt('rasmuslerdorf', 'rl');

} // 显示 rl.3StKT.4T8M

if (CRYPT_EXT_DES == 1) {

     echo 'Extended DES: ' . crypt('rasmuslerdorf', '_J9..rasm');

} // 显示 _J9..rasmBYk8r9AiWNc

if (CRYPT_MD5 == 1) {

     echo 'MD5:           ' . crypt('rasmuslerdorf', '$1$rasmusle$');

} // 显示 $1$rasmusle$rISCgZzpwk3UhDidwXvin0

if (CRYPT_BLOWFISH == 1) {

     echo 'Blowfish:      ' . crypt('rasmuslerdorf', '$2a$07$rasmusler...........$');

} // 显示 $2a$07$rasmuslerd............nIdrcHdxcUxWomQX9j6kvERCFjTg7Ra

?>

crc32()函数的作用是计算一个字符串的crc32多项式

<?php

$checksum = crc32("Hello World!");

printf("%u\n", $checksum); // 显示 472456355

?>

quoted_printable_decode()函数不知道什么意思。

convert_uuencode()函数的作用是对一个字符串进行加密,convert_uudecode()函数的作用和convert_uuencode()函数相反,可以起到解密的作用。

<?php

$some_string = "test\ntext text\r\n";

echo convert_uuencode($some_string); // 显示 0=&5S=`IT97AT('1E>'0-"@`` `

echo convert_uudecode(convert_uuencode($some_string)); //显示 test text text

?>

 

 

附件列表


按字母顺序浏览:A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

→我们致力于为广大网民解决所遇到的各种电脑技术问题
 如果您认为本词条还有待完善,请 编辑词条

上一篇织梦更新数据库archives表时出错
下一篇

0
1. 本站部分内容来自互联网,如有任何版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
2. 本站内容仅供参考,如果您需要解决具体问题,建议您咨询相关领域专业人士。
3. 如果您没有找到需要的百科词条,您可以到百科问答提问或创建词条,等待高手解答。

关于本词条的提问

查看全部/我要提问>>