- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
27.字符串替换PHP课件必威体育精装版版课案
字符串替换
替换字符
有时候我们的网站发布评论的时候需要进行一些内容的过滤,一些脏话、敏感词、特殊词语都需要被屏蔽替换成*号或者x
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int $count ] )
使用str_replace可以简单完成这个工作,第一个参数是需要查找的敏感词,第二个参数是需要被替换成的文字,第三个参数是原始的文本
$str = 天上满天星,地下满山灯,满天星亮满天庭,满山灯接满天星;echo str_replace(星, 云, $str);
获取替换次数
$count = 0;$str = 天上满天星,地下满山灯,满天星亮满天庭,满山灯接满天星;str_replace(星, 云, $str, $count);echo $count; // 3
根据所学的知识,我们知道,一个函数只能返回一个值,str_replace的返回值是替换后的文字,那么如果还想要获得替换的次数,就不能使用返回值了
$count是个传值的参数,在函数的执行过程中,$count的值会发生改变,函数执行完成后,我们可以获取到新的值
批量替换字符
str_replace的前两个参数也可以使用数组,从而实现批量的替换,显然两个数组的元素个数必须保持一致
$str = 天上满天星,地下满山灯,满天星亮满天庭,满山灯接满天星;echo str_replace([星, 灯], [云, 树], $str);
如果替换数组个数少于查询数组个数,那么未匹配上的会被替换为空
echo str_replace([星, 灯], [云], $str);
如果替换的是字符串,那么查询数组的每个元素都会被替换为该字符串
echo str_replace([星, 灯], 云, $str);
思考
我们经常在电视节目中看到有发送手机短信抽奖的活动,一般中奖的用户的手机号会在电视上公布,但是为了安全和隐私考虑,我们需要对手机号里的某些位进行遮挡,譬如替换成*号
请思考,如果我们需要实现这样的功能,可以将一个手机号中间4位替换成*号,请问如何实现?str_replace是否能够满足我们的需求?To 139****4567
模拟短信投票
我们没有必要去弄一个真正的手机短信投票功能,这个需要一些运营商和通信公司的支持,可能还需要一些费用
我们可以开发一个表单,表单中添加一个文本框,用户可以在文本框里填写手机号,表单提交后,页面显示出处理过的手机号
form action=mobile.php method=post input type=text name=mobile placeholder=请输入手机号 / input type=submit value=发送 / /form
mobile.php
在mobile.php中我们需要获取到表单提交的手机号
对手机号中间四位进行隐藏
输出过滤后的手机号码
$mobile = $_POST[mobile];
strlen
要正确替换手机号的中间4位,前提是手机号必须是11位
如果用户提交的手机号码的位数不足11位,或者超过11位,应该算作无效的手机号,那么我们需要首先对手机号的位数进行判断
使用strlen可以获取字符串的长度
int strlen ( string $string )
if (strlen($mobile) == 11) { // 替换操作} else { echo 位数错误;}
思考
如果用户在输入完成后多敲了一个空格怎么办?
如果用户敲了8个空格和3个数字,那算不算11位的手机号?
trim
用户提交到PHP的表单数据很有可能是包含了一些无用的字符的,譬如前后多加了空格、换行……因此,通常需要使用trim来进行处理
trim可以去除字符串首尾处的空白字符,并将处理后的字符串返回
string trim ( string $str [, string $charlist = \t\n\r\0\x0B ] )
trim可以处理掉的空白字符包括:空格、\t制表符tab、\n换行符、\r回车符、\0空字符等,如果需要额外处理其他的字符,可以在第二个参数里添加,譬如 trim($str, ‘#^’)可以处理掉字符串首尾的#、或者^符号
trim
大家可以尝试在表单的手机号前后添加空格,看看使用trim是否可以过滤
另外还有两个函数:ltrim和rtrim,分别可以单独清除首或者尾的空字符
$mobile = trim($_POST[mobile]);
substr
如果手机号如何能获取到中间的四位究竟是多少?
我们使用s
您可能关注的文档
最近下载
- 济南版(2024)初中生物学七年级上册《脊椎动物身体背部有脊柱》教学设计及反思.docx
- 中铁建工集团质量管理手册.pdf
- 二级中医医院评审细则解读院感部分.pptx
- 2024年迪瑞医疗分析报告:强化协同,仪器放量布局市场.pdf
- 部编版初中道德与法治九年级上册单元作业设计 (优质案例12页) .pdf
- 广东实验中学2023-2024学年八年级上学期期中考试语文试卷.docx VIP
- 2020年世界发展报告:全球价值链时代的贸易换发展.pdf VIP
- 湖北省水利工程重大设计变更报告编制大纲.pdf
- 2024高中地理教师课程标准考试模拟试卷及参考答案.docx VIP
- 《材料成型工艺学》全套教学课件.ppt
文档评论(0)