删除html标签得到纯文本可处理嵌套的标签

yipeiwu_com7年前PHP代码库
方法基本上来自THinkphp中的源码,但是被我修改了一下
复制代码 代码如下:

<?php
/*
*@Description:删除HTML标签,得到纯文本。可以处理嵌套的标签
*
*/
class deleteHtmlTags{

private $filename;

function __construct($filename='C:/AppServ/www/text.txt'){
$this->filename = $filename;
}

/**
* 删除html标签,得到纯文本。可以处理嵌套的标签,局限性在于连标签内的属性值都会删除掉
* @access public
* @param string $string 要处理的html
* @return string
*/
public function deletehtmltags(){
$content = $this->contentGet();
while(strstr($content, '>')){
$currentBegin = strpos($content, '<');
$currentEnd = strpos($content, '>');
$cha = $currentEnd - $currentBegin - 1;
$tmpStringBegin = @substr($content, 0, $currentBegin);
// $tmpStringMiddle = @ substr($content, $currentBegin + 1, $cha);
$tmpStringEnd = @substr($content, $currentEnd + 1, strlen($content));
// $content = $tmpStringBegin.$tmpStringMiddle.$tmpStringEnd;
$content = $tmpStringBegin.$tmpStringEnd;
}
return $content;
}

private function contentGet(){
$fd = fopen($this->filename, 'r');
$content = fread($fd, filesize($this->filename));
fclose($fd);
return $content;
}
}

$deleteHtml = new deleteHtmlTags();
$content = $deleteHtml->deletehtmltags();
echo $content;
?>

修改部分也在上面,只是注释掉了。个人觉得这个方法比用正则这类的方法更好。

相关文章

php实现无限级分类实现代码(递归方法)

开始以为这样的功能似乎很难,之前也做过一个百科的东西,其中也涉及到了分类的功能,不过不是无限级的分类,而是简单的实现了固定的三级分类,当时是自己设计的,想在想起来实现方法太土了,其实三级...

CentOS安装php v8js教程

CentOS release 5.11 (Final),CentOS release 6.6 (Final) x64测试通过。 gcc版本,glibc版本,libstdc++.so.6版...

php+jquery编码方面的一些心得(utf-8 gb2312)

php 文件应存为ANSI,要改编码时可用代码调。 复制代码 代码如下: //编码为gb2312,目前大部分网页还是用gb2312,少部分用utf-8, //www.baidu.com竟...

PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】

本文实例讲述了PHP实现微信模拟登陆并给用户发送消息的方法。分享给大家供大家参考,具体如下: <?php /* 原作者:https://github.com/itziy...

PHP 进程锁定问题分析研究

1. 区分读锁定 和 写 锁定。 如果每次都使用 写锁定,那么连多个进程读取一个文件也要排队,这样的效率肯定不行。 2. 区分 阻塞 与 非 阻塞模式。 一般来说,如果一个进程在写一个文...