PHP教程:格式化字符串,过滤各种HTML标签

/**
 *  格式化字符串,过滤字符串.
 *
 * @param string $source 字符串
 * @param string $para   正则表达式,可用[html-format]|[nohtml]|[noscript]|[enter]|[noenter]|[filename]|[normalname]或自定义表达式
 *
 * @return string
 */
function FormatString($source, $para)
{
    //把预定义的字符转换为 HTML 实体
	if (strpos($para, '[html-format]') !== false) {
        $source = htmlspecialchars($source);
    }

    //过滤HTML标签
	if (strpos($para, '[nohtml]') !== false) {
        $source = preg_replace("/<([^<>]*)>/si", "", $source);
        $source = str_replace("<", "?", $source);
        $source = str_replace(">", "?", $source);
    }

    //过滤js脚本
	if (strpos($para, '[noscript]') !== false) {
        $source = preg_replace( "@<script(.*?)</script>@is", "", $source );
        $source = preg_replace( "@<iframe(.*?)</iframe>@is", "", $source );
    }
    //换行符替换HTML标签<br/>
	if (strpos($para, '[enter]') !== false) {
        $source = str_replace("\r\n", "<br/>", $source);
        $source = str_replace("\n", "<br/>", $source);
        $source = str_replace("\r", "<br/>", $source);
        $source = preg_replace("/(<br\/>)+/", "<br/>", $source);
    }
    //过滤换行符
	if (strpos($para, '[noenter]') !== false) {
        $source = str_replace("\r\n", "", $source);
        $source = str_replace("\n", "", $source);
        $source = str_replace("\r", "", $source);
    }
    if (strpos($para, '[filename]') !== false) {
        $source = str_replace(array("/", "#", "$", "\\", ":", "?", "*", "\"", "<", ">", "|", " "), array(""), $source);
    }
    if (strpos($para, '[normalname]') !== false) {
        $source = str_replace(array("#", "$", "(", ")", "*", "+", "[", "]", "{", "}", "?", "\\", "^", "|", ":", "'", "\"", ";", "@", "~", "=", "%", "&"), array(""), $source);
    }

    return $source;
}

以上为本文格式化字符串全部内容,代码粗陋希望对你有所帮助

猜你喜欢

PHP教程:基于array_unique实现二维数组去重实例代码

PHP教程:基于array_unique实现二维数组去重实例代码

本篇教程主要讲解PHP基于array_unique实现二维数组去重array_unique函数就是可以处重的,它具备了这个功能了,下面我们一来看一个关于PHP使用array_unique对二维数组去重处理例子。php 5.2.9 版本增加了array_unique对多维数组的支持,在处理多维数组是需要设置sort_flags参数一维数组的重复项使用array...

PHP实例:使用header 304实现php动态网页设置浏览器的缓存

PHP实例:使用header 304实现php动态网页设置浏览器的缓存

很多人可能不知道,动态网页在浏览器也是可以缓存的。下面就以 PHP 脚本为实例,阐述如何设置php动态网页在浏览器缓存<?php //设置网页过期时间为1小时 $duetime = 60*60; //获取浏览器会向服务器传送 Last-Modified 报头 $modify_time =&nbs...

评论列表

发表评论