基于PHP常用字符串的总结(待续)

前端技术 2023/09/07 PHP
1.分割与合并
implode:
echo implode(\",\", array(\'lastname\', \'email\', \'phone\'));//数组转成字符串

explode:
print_r(explode(\",\", \'lastname,email,phone\'));//字符串转成数组

split:
print_r(split(\"[/.-]\",\"2008-9.12\"));//以/或.或-任一符号切成数组

str_split:
print_r(str_split(\"Hello Friend\",1));//将字符串切开

preg_split:
//正则分割
//$ops = preg_split(\"{[+*/-]}\",\"3+5*9/2\");
//print_r($ops);//返回:Array ( [0] => 3 [1] => 5 [2] => 9 [3] => 2 )

http_build_query:
//生成 url-encoded 之后的请求字符串
$data = array(\'localhost\'=>\'aa\',
\'user\'=>\'bb\',
\'password\'=>\'cc\');
echo http_build_query($data);//返回:localhost=aa&user=bb&password=cc

strtok:
//将字符串切成小段
$string = \"This is\\tan example\\nstring\";
echo strtok($string,\"\\n\\t\");//返回:This is
echo \'<hr>\';
echo strtok(\"\\n\\t\"); //当第二次返回:an example
echo \'<hr>\';
echo strtok(\"\\n\\t\"); //当第三次返回:string
2.查找和替换
字符串中很多是 r:取最后的,i:不区分大小写的
echo $pos = strpos(\'abcdef abcdaef\', \'a\'); // 字母a第一次出现的位置,区分大小写
echo $pos = strrpos(\'abcdef abcdeaf\', \'a\'); // 字母a最后一次出现的位置,区分大小写
stripos:不区分大小写
strripos:不区分大小写
echo strstr(\'user@exa@mple.com\', \'@\');//返回:@exa@mple.com
stristr:不区分大小写
echo strchr(\'user@exa@mple.com\', \'@\');//返回:@exa@mple.com
strrchr:则返回:@mple.com,

preg_grep:
//返回与模式匹配的数组单元
$food = preg_grep(\"/^p/\",array(\"apple\",\"orange\",\"pip\",\"banana\"));
print_r($food); //返回:Array ( [2] => pip )

strtr:
//以指定的数组替换找到的字符串
$arr = array(\"www\"=>\"ftp\",\"yahoo\"=>\"baidu\");
echo strtr(\"www.yahoo.com\",$arr);//返回:ftp.baidu.com
echo strtr(\"www.yahoo.com\",\"wo\",\"sx\");//返回:sss.yahxx.cxm 翻译字符串 把所有w换成了s把所有的o换成了x

strspn:
//找出比对到的最初部份的长度
echo strspn(\"abcdefg\",\"1234567890\");//返回:0
//找出没有比对到的最初部份的长度
echo strcspn(\"abcdefg\",\"1234567890\");//返回:7


3.正则
preg_match:
//返回 pattern 所匹配的次数。要么是 0 次(没有匹配)或 1 次,因为 preg_match() 在第一次匹配之后将停止搜索。
if (preg_match (\"/php/i\", \"PhP is the web scripting language of choice.\"))
echo \"存在\";
else
echo \"不存在\";

preg_match_all:
//则相反,会一直搜索到 subject 的结尾处。
preg_match_all(\"/\\(?(\\d{3})?\\)?(?(1)[\\-\\s])\\d{3}-\\d{4}/x\",
\"Call 555-1212 or 1-800-555-1212\", $phones);
print_r($phones[0]);//取得所有的电话号码

ereg_replace:
//URL 替换为超连接
echo ereg_replace(\"[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]\",
\"<a href=\\\"\\\\0\\\">\\\\0</a>\", \'这是百度http://www.baidu.com网站。\');
preg_replace:过滤
$search = array (\"\'<script[^>]*?>.*?</script>\'si\",  // 去掉 javascript
\"\'<[\\/\\!]*?[^<>]*?>\'si\",           // 去掉 HTML 标记
\"\'([\\r\\n])[\\s]+\'\",                 // 去掉空白字符
\"\'&(quot|#34);\'i\",                 // 替换 HTML 实体
\"\'&(amp|#38);\'i\",
\"\'&(lt|#60);\'i\",
\"\'&(gt|#62);\'i\",
\"\'&(nbsp|#160);\'i\",
\"\'&(iexcl|#161);\'i\",
\"\'&(cent|#162);\'i\",
\"\'&(pound|#163);\'i\",
\"\'&(copy|#169);\'i\",
\"\'&#(\\d+);\'e\");                    // 作为 PHP 代码运行
$replace = array (\"\",
\"\",
\"\\\\1\",
\"\\\"\",
\"&\",
\"<\",
\">\",
\" \",
chr(161),
chr(162),
chr(163),
chr(169),
\"chr(\\\\1)\");
echo $text = preg_replace ($search, $replace, \'<b>test</b><script>alert(\"adfasdf\");</script>\');

preg_quote:
//转义正则表达式字符,把每个要加\\都加上\\,符合正则式。
echo preg_quote(\'$40 for a g3/400\',\'/\');//返回:\\$40 for a g3\\/400

sql_regcase:
//产生用于不区分大小的匹配的正则表达式

echo sql_regcase(\"Foo-bar.a\"); //返回:[Ff][Oo][Oo]-[Bb][Aa][Rr].[Aa]

4.URL 编码处理函数
urlencode:
echo $str = urlencode(\'http://www.baidu.com?key=百度\');//编码
echo urldecode($str);//解码

rawurlencode:
//百分号(%)后跟两位十六进制数的序列都将被替换成原义字符
//注: rawurldecode() 不会把加号(\'+\')解码为空格,而 urldecode() 可以。
echo $str = rawurlencode(\'http://www.baidu.com?key=百度\');//编码
echo rawurldecode($str);

parse_url:
//解析 URL,返回其组成部分
print_r(parse_url(\"http://username:password@hostname/path?arg=value#anchor\"));

parse_str:
//是将URL解析成变量
$str = \"id=1&name=2\";
parse_str($str);
echo $name;
//有第二个参数时,把值存到了数组中
$str = \"id=1&name=2\";
parse_str($str,$array);
print_r($array);

5.时间函数
mktime:
//把日期转换成时间戳
echo time()-mktime(0,0,0,9,17,2008);//返回:当前时间和2008年9月17日的时间差。
echo date(\'Y-m-d H:i:s\');//当前的日期和时间

getdate:
//取得日期/时间信息
print_r(getdate(time()));
6.比较
similar_text:
//比较两个字符串的相似度
$a = \"Hellohhh6\";
$b = \"hello3hh\";
echo similar_text($a,$b);//返回:6比较对应的位置有多少相同的字符
echo \"<br>\";
similar_text($a,$b,$similar);
echo $similar.\"%\"; //输出相同字符的百分比

soundex:
//比较两个单词的发音
$a = \"ddHello6\";
$b = \"hello3\";
echo soundex($a).\"<br>\";
echo soundex($b).\"<br>\";
if(soundex($a)==soundex($b)) echo \"发音相同\";else echo \'不同\';

strnatcmp():
//按自然排序法时进行字符串比较
$arr = array(\"a1.jpg\",\"a2.jpg\",\"a3.jpg\",\"a4.jpg\");
$max = $arr[0];
for($i=0;$i<count($arr);$i++)
{
if(strnatcmp($arr[$i],$max)>0)
$max = $arr[$i];
}
echo $max;//返回:a4.jpg

strcmp:
//区分大小写,按字节进行字符串比较,第一个字符串大于第二个字符串时返回:1,等于返回:0,小于返回:-1
echo strcmp(\'abc\',\'Abc\');
strcasecmp:
//返回两个字符串的相差数
echo strcasecmp(\'wbc\',\'bbc\');//返回:21
strncmp:
//指定字元数目的字符串比对,此函数和相似,不同的是,你可以指定要用来比对的字符串的字元数目。如果任何一个字符串比 len还短时,则会使用那个字符串的长度来比对
echo strncmp(\"adrdvark\",\"aardwolf\",4);//返回:1

7.排序
sort:
//将数组的值由a-z重排
$a = array(\"1\",\"s\",\"3\",\"n\",\"5\");//返回:1,3,5,n,s
sort($a);//排序print_r($a);


8.其他
str_pad:
//填塞字符串成为指定的长度,pad_type可以是STR_PAD_RIGHT、STR_PAD_LEFT或是STR_PAD_BOTH
echo str_pad(\"www.yahoo.com\",17,\"_\",STR_PAD_BOTH);//字符串的填补函数__www.yahoo.com__
strlen(\"aaa\");//求数组的长度返回:3
strrev();// 字符串的颠倒
strtolower();//转换成小写
strtoupper();//转换成大写
str_replace()将字符串替换,区分大小写str_ireplace()不区分大小写
ucfirst();//将第一个字母转换成大写
ucwords();//将每个单词的第一个字母转换成大写
echo join(\"&\",array(\'wo\', \'men\', \'shi\'));//字符串的连合 返回:wo&men&shi用&连合

count_chars:
//传回在字符串中使用的字元的资讯
print_r(count_chars(\"Hellohhh6\",0));//返回字符串中每个字节值(0~255)出现的次数作为值的数组。0列出所有的。1只列出现次数大于0的。2只列出现次数等于0的。3返回所使用的字节值组成的字符串。如:6Hehlo。4返回所未使用的字节值组成的字符串
str_replace:
str_replace(\"yahoo\",\"baidu\",\"www.yahoo.com\");
$c = \"www.yahoo.com\";
$arr = array(\"yahoo\",\"com\");
echo str_replace($arr,\"baidu\",$c);//返回:www.baidu.baidu

$c = \"www.yahoo.com\";
$arr1 = array(\"www\",\"yahoo\",\"com\");
$arr2 = array(\"ftp\",\"baidu\",\"net\");
echo str_replace($arr1,$arr2,$c);//返回:ftp.baidu.net

substr($a,2,2);//取子字符串
echo substr_count(\"This is a test\", \"is\");//统计子字符串的出现的个数
substr_replace();//替换子字符串

$url = \"http://localhost/zheng_ze_biao_da/youxiang.php\";
echo substr($url,strrpos($url,\"/\")+1);//返回:youxiang.php用于返回文件名

str_word_count:
$a = \"I/ love/ you/\";
echo str_word_count($a);//返回:3 统计字符串的单词的个数
print_r(str_word_count($a,1));//返回:Array ( [0] => I [1] => love [2] => you )
//print_r(str_word_count($a,2));//返回:Array ( [0] => I [3] => love [9] => you )
//print_r(str_word_count($a,1,\"/\"));返回:Array ( [0] => I/ [1] => love/ [2] => you/ )这里是忽略\"/\"的

本文地址:https://www.stayed.cn/item/18695

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。