【小白笔记】PHP学习之路 (10) --字符串(2)

字符串替换函数:


str_replace()   区分大小写        str_ireplace() 不区分大小写  可以对数组进行替换

	$url = "无人网https://www.nothong.com.cn不存在的域名";
	$str = str_replace('h','H',$url);
	echo $str;

结果:
无人网Https://www.notHong.com.cn不存在的域名

也可以对 数组进行替换:
	$url = "无人网https://www.nothong.com.cn不存在的域名";
	$arr1 = array('h','w','o');
	$arr2 = array('HH','WW','OO');
	$str = str_replace($arr1,$arr2,$url,$k);  //$k统计替换次数
	echo $str,$k;

结果:
无人网HHttps://WWWWWW.nOOtHHOOng.cOOm.cn不存在的域名
8

strtr()

    替换字符串中的任意字符。可以通过直接指定字符串,也可以通过数组形式:

	$url = "bbcs.wrvte.blog/pose_verbaxse-lan2gu%126";
	$arr0 = array("bb"=>"B","w"=>"M","2"=>"Q","-"=>"_");
	echo "原字符串:<br/>{$url}<br/>";
	echo strtr($url,$arr0)."<br/>";
	echo strtr($url,"bbw2-","BMQ_");  //"b"被替换成"M","-"不变

结果:

原字符串:
bbcs.wrvte.blog/pose_verbaxse-lan2gu%126
Bcs.Mrvte.blog/pose_verbaxse_lanQgu%1Q6
MMcs.Qrvte.Mlog/pose_verMaxse-lan_gu%1_6

字符串比较函数:

strcmp() 区分大小写     strcasecmp() 不区分大小写

    比较字符串(逐个比较ASCII码),如果相等返回0,前者大返回1,后者大返回-1。

strnatcmp()  按自然数比较字符串

strncmp(字符串, 字符串, 要比较的长度) 

    指定位置比较字符串。例如: echo strncmp("1001", "1002", 3);

similar_text(字符串, 字符串, $k[可选])  

    相似度比较,返回在两个字符串中均存在字符的个数。可以增加第三个参数$k,会被赋值为相似度(百分比)。



字符串统计函数:

substr_count(字符串a, 字符串b, 开始查找的位置[可选], 要查找的长度[可选])

    查找b在a中出现了几次,返回该数字。


字符串处理函数:

parse_url()  URL解析

    解析URL,返回一个数组:
	$url = "https://www.nothing.com.cn/admin/index.php?uname=abc&a=add";
	$arr = parse_url($url);
	echo "<pre>";
	print_r($arr);
	echo $arr['host'];
	echo "<br/>".parse_url($url,PHP_URL_PATH); //PHP_URL_SCHEME、PHP_URL_HOST、PHP_URL_QUERY
	echo $arr['path'];

结果:
Array
(
    [scheme] => https
    [host] => www.nothing.com.cn
    [path] => /admin/index.php
    [query] => uname=abc&a=add
)
www.nothing.com.cn
/admin/index.php/admin/index.php

urlencode()和urldecode()  编码和解码

    对url进行编码和解码。
例:
	$str = "蛾儿雪柳黄金缕";
	echo "<a href='26.php?h=".urlencode($str)."'>点击</a><br/>";  //这段代码包含在26.php中
	echo $_GET['h'];

结果:
点击  //超链接
蛾儿雪柳黄金缕

例1:
	$str2 = "笑语盈盈暗香去";
	echo urlencode($str2);
	echo "<br/>";
	echo urldecode(urlencode($str2));

结果:
%E7%AC%91%E8%AF%AD%E7%9B%88%E7%9B%88%E6%9A%97%E9%A6%99%E5%8E%BB
笑语盈盈暗香去

htmlentities(操作内容, 转换规则[ 可选,默认为ENT_COMPAT ])  实体化转换

    转换成html实体, 会对中文进行转换(易产生乱码)
    参数:
             ENT_COMPAT 只转换双引号   
             ENT_QUOTES 转换单双引号   
             ENT_NOQUOTES 不转换任何引号
例:
	$str2 = "<h1 style='color:red'>“笑语盈盈”'暗'\"香\"去</h1>";  // " 会被转换为&quot;,“”会被转换为&ldquo;&rdquo;
	//echo urlencode($str2);
	//echo "<br/>";
	//echo urldecode(urlencode($str2));
	echo $str2;  
	echo htmlentities($str2);  //这里未加参数,不会对单引号进行转换

结果:

“笑语盈盈”'暗'"香"去

<h1 style='color:red'>“笑语盈盈”'暗'"香"去</h1>

查看源代码:

<h1 style='color:red'>“笑语盈盈”'暗'"香"去</h1><br/><h1 style='color:red'>“笑语盈盈”'暗'"香"去</h1>


htmlspecialchars()  非中文的实体化转换

    有时候只想将非中文字符串转化为实体,就可以使用 htmlspecialchars ()函数。这样可以防止误转化中文而产生乱码。
    通过实体化可以一定程度上有效地防止恶意信息
    例如用户发帖子时:
<div style="width:9999px;height:9999px;background-color:#000;z-index:9999;"></div>

如果这样的一个帖子未经处理而直接发出,那么整个网站页面都会被这行html代码破坏。
同样地,如果用户在表单输入框输入某些恶意代码,这些代码未经处理就直接发送,那么极有可能产生巨大的破坏。

htmlspecialchars_decode()   去实体化

    将已经转换为html实体的内容转换为字符串。
    注意:没有htmlentities_decode()函数。

addslashes()  自动字符转义


get_magic_quotes_gpc()   获得系统(php.ini)是否对外部表单项、cookie等开启转义,返回1或0

    对预定义字符串进行转义。PHP默认开启了GET、POST方法自动转义(引号、换行等),
    但是有的时候环境并未开启自动转义,即可使用此函数进行转义。
php.ini默认开启了自动转义:
; magic_quotes_gpc
;   Default Value: On
;   Development Value: Off
;   Production Value: Off

注意:使用addslashes()函数时,必须先确认系统是否开启自动转义,否则可能产生多重转义。

stripslashes()  删除转义符,相当于addslashes()的"反函数"


ini_get_all()  显示php.ini的配置信息(数组方式)


phpinfo()   查看php环境的详细信息


get_magic_quotes_runtime()  获得外部文件和数据库资料时是否进行转义


set_magic_quotes_runtime(1)  设置自动转义(开启),关闭为0


strip_tags(字符串, '<span>'[可选])  去除html、xml、php中的所有的标签,可选参数:要保留的标签


终于把字符串这一章的内容啃完了,php函数好多,只能多复习、慢慢消化了…… 奋斗
以上均为个人理解,初学php,如果有不对的地方,欢迎大家指正!微笑
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值