字符串替换函数:
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>"; // " 会被转换为",“”会被转换为“”
//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.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,如果有不对的地方,欢迎大家指正!