ホームページ  >  記事  >  バックエンド開発  >  PHP_PHP チュートリアルを使用して HTML をテキストに変換するいくつかの方法のまとめ

PHP_PHP チュートリアルを使用して HTML をテキストに変換するいくつかの方法のまとめ

WBOY
WBOYオリジナル
2016-07-13 16:57:38981ブラウズ

PHP では、HTML をテキストに変換するための組み込み関数strip_tags が提供されていますが、この関数では不十分な場合があります。参考までに、いくつかのユーザー定義関数の概要を以下に示します。

最もよく使用されるPHP関数strip_tags

コードは次のとおりです コードをコピー


$mystr=<<&佐藤
ここでは数十行の HTML コードが省略されています^_^
佐藤;
$str=strip_tags($mystr);
//この時点で、HTMLをTXTテキストに変換するという目的は達成されました、笑、この機能を使うととても便利です
//以下はプラグインの単語分割やその他の操作ですので、ここでは詳しく説明しません
?>


カスタム機能

コードは次のとおりです コードをコピー

// $document には HTML ドキュメントが含まれている必要があります。
// この例では HTML タグと JavaScript コードを削除します
// および空白文字。共通のものもあります
// HTML エンティティは対応するテキストに変換されます。

$search = array ("']*?>.*?'si", // javascriptを削除します
"'<[/!]*?[^<>]*?>'し", "'<[/!]*?[^'し", 「」 "'([rn])[s]+'"、"([rn])[s]+'"、 "'&(quot |#34);' i"、 "&(quot |#34); 'i"、 「'&(amp|#38);'i」、
「'&(lt|#60);'i」、
「'&(gt|#62);'i」、
「'&(nbsp|#160);'i」、
"'&(iexcl|#161);'i",
「'&(cent|#162);'i」、
「'&(ポンド|#163);'i」、
"'&(copy|#169);'i",
"'(d+);'e"); "'(d+);'e");
$replace = 配列 ("",
) 「」、
「1」、

「」、

「&」、
「<」、
「>」、
「」、
chr(161)、
chr(162)、
chr(163)、
chr(169)、
"chr(1)");

$text = preg_replace ($search, $replace, $document);
?>


後で、インターネット上で PHP で書かれたメソッドを見つけました。このメソッドは、個人的には非常に実用的だと思います。コードは次のとおりです。

コードは次のとおりですコードをコピー関数 HtmlToText($str){

使用上面这个方法也可以实现将简答的HTML代码转换为TXT文本。

例3

$str=preg_replace("/||/isU","",$ str);//CSS スタイル、JS スクリプト、HTML コメントを削除します
$alltext="" //TXT テキストの保存に使用される変数
$start=1;//左右のラベルを検出するために使用されるコントロール スイッチ
for($i=0;$i If(($start==0)&&($str[$i]==">")){//>正しいラベルが検出された場合、$start=1 を使用してインターセプト機能を有効にします
; $start=1;
}else if($start==1){//インターセプト関数
If($str[$i]=="<"){//文字が | を使用して
を置き換えます。 $start=0;
$alltext.="|";
}else if(ord($str[$i])>31){//その文字が 31 より大きい ASCII の有効な文字である場合、その文字を $alltext 変数に追加します
$alltext.=$str[$i];
}
}
}
//以下はスペースと一部の特殊文字を削除する操作です
$alltext = str_replace(" "," ",$alltext);
$alltext = preg_replace("/&([^;&]*)(;|&)/","",$alltext);
$alltext = preg_replace("/[ ]+/s"," ",$alltext);
$alltext を返します;
}

 代码如下 复制代码

function html2text($str,$encode = 'GB2312')
{

  $str = preg_replace("/