购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.8 实战练习

4.8.1 网站中最新动态模块的中文字符串截取

难度系数:★★★

题目描述

用户在浏览网站的主页文件中,经常会看到类似于最新动态,热门话题等模块内容,如图4.18所示。这些模块的主要作用是向浏览网站的用户提供网站的最新、最热的话题或相关信息的链接,但是这些模块由于主页空间、大小、布局的限制,不可能将所有内容全部显示出来,这就需要程序员对这些热门话题、最新动态的标题进行合理的截取,如果该模块内容的标题是以英文的方式显示给用户的,似乎本练习讲解的内容就没有多大的意义了,笔者针对国内的中文网站对该模块的内容标题,进行合理的中文字符串截取。程序运行结果如图4.19所示。

图 4.18 最新动态

图 4.19 截取中文字符串标题

技术指导

完成本练习,主要是通过自定义函数chinese_substr()对所要截取的字符串内容进行合理的转换截取,本自定义函数的原理是,定义三个参数;其中参数$str代表截取字符串的内容,$start参数代表截取字符串的开始位置,$len代表截取字符串的长度,利用for循环语句,将字符串中每一字节转换成ASCII码并与0xa0进行比较,当该字节ASCII值大于0xa0时,表明此字节为中文部分,按两字节长度截取,否则按一字节长度截取。示例代码参考如下。

紧急救援

如果您在做本例题的过程中遇到困难或疑惑,可以按照下面救援通道提供的网址获取本例题的源码和技术文档。

救援通道:http://www.mrbccd.com/PHP/lovePHP/4.8.1

4.8.2 论坛发布内容模块中对内容的格式化输出

难度系数:★★★

题目描述

用户在编写与浏览者互动的论坛模块中,如发布主题等,一定要对浏览者发布的内容进行HTML的格式化输出,这样做的意义非常重大,最主要的原因是,用户论坛的服务器资源是有限的,这样有限的资源去解析浏览者发布的无意或者恶意的HTML代码,会给服务器带来莫大的负担甚至是崩溃。为了解决这一问题,下面笔者就经格式化输出和未经格式化输出两种情况来讲解,如何自己制作一个合理的格式化小模块,如图4.20所示。

图 4.20 HTML字段格式化输出

技术指导

完成本练习,主要是通过自定义函数html()对用户发布的内容进行格式化,其中包括对HTML代码的格式化,对网页空格符“ ”的格式化。本函数的实现原理是:首先,将传递进来的内容,经函数htmlspecialchars()进行HTML代码格式化,这样一来HTML代码在网页中就转变成普通的字符串了。其次,通过str_replace()函数替换网页中的空格符为chr(32)。这样,一个简单的格式化输出函数就定义完成了,示例代码参考如下。

紧急救援

如果您在做本例题的过程中遇到困难或疑惑,可以按照下面救援通道提供的网址获取本例题的源代码和技术文档。

救援通道:http://www.mrbccd.com/PHP/lovePHP/4.8.2 6D4hUKwfcekJ8nwrnyc/oBEZbjriHiOYgUlgoNcSdsLXj5cpMHPrbw57mNJVmS2y

点击中间区域
呼出菜单
上一章
目录
下一章
×