国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ php教程 php手冊 PHP Tidy - 完璧な XHTML エラー修正フィルタリング

PHP Tidy - 完璧な XHTML エラー修正フィルタリング

Jun 13, 2016 pm 12:32 PM
xhtml 。 関數(shù) そして 基本 數(shù) ユーザー 修正 ネット 美しい 入力 出力 フィルター

入力と出力
入力と出力は、多くの Web サイトの基本機能とも言えます。ユーザーがデータを入力すると、Web サイトは他の人が閲覧できるようにそのデータを出力します。

現(xiàn)在人気のブログを例に挙げます。ここでの入力と出力は、作成者が記事を編集し、他の人が読めるようにブログ記事ページを生成することです。
ここで問題が発生します。つまり、ユーザー入力は通常制御されておらず、不正な形式やセキュリティ上のリスクを伴うコードが含まれている可能性がありますが、Web サイトによって出力される最終コンテンツは正しい HTML コードである必要があります。これには、エラー修正とユーザー入力のフィルタリングが必要です。

ユーザー入力を決して信用しない
あなたは次のように言うかもしれません: 今ではどこにでも WYSIWYG エディター (WYSIWYG) があり、FCKeditor、TinyMCE... 名前はたくさんあるでしょう。確かに、これらはすべて標準の XHTML コードを自動的に生成できますが、Web 開発者であれば、「ユーザーが送信したデータを決して信頼しない」という言葉を聞いたことがあるはずです。

したがって、ユーザー入力データを修正およびフィルタリングする必要があります。

より良いエラー修正とフィルタリングが必要です
これまでのところ、私が満足できる関連実裝は見たことがありません。通常、非効率で理想的とは言えず、あれこれあります。 . 明らかな欠陥。よく知られた例を挙げると、WordPress は非常に広く使用されているブログ システムであり、操作が簡単で強力であり、豊富なプラグイン サポートを備えており、バックグラウンドで多數(shù)の巧妙なエラー修正およびフィルタリング コードをサポートしています。非常に頭の痛い問題、半角文字の強制置換、過度に保守的な置換ルールなどにより、コードを貼り付けて正しく表示するという要件を達成することが困難になります。

ところで、このブログは WordPress でホストされていますが、これらの記事を正しく表示するために、ネットでいろいろ調(diào)べて、いくつかのプラグインを試してみました。コードを上書きし、一部をフィルタリングしました。ルールをコメントアウトすると、表示がまともになることはほとんどありません -.-b

もちろん、私はそれ (WordPress) をあまり批判したくないのですが、それを示したいだけですもっと良くできるよ。

Tidy とは何ですか?また、どのように機能しますか?
Tidy ManPage から引用した説明では、次のように説明されています。

Tidy は、HTML、XHTML、および XML ファイルを読み取り、W3C 準拠でほとんどのブラウザーで動作するクリーンアップされたマークアップを書き込みます。一般的な XML ファイルの場合、Tidy は、HTML コードをクリーンアップし、W3C 標準に準拠したクリーンな HTML コードを生成し、HTML をサポートすると言われています。 XHTML と XML。 Tidy は、Tidy の強力な機能を他のアプリケーションで簡単に使用できるようにするライブラリ TidyLib を提供します。幸いなことに、PHP には使用できる対応する Tidy モジュールがあります。

おい、なぜまた PHP なのか?
えっと、この質(zhì)問…恥ずかしいのだが、私は PHP について少ししか知らないので -.-v
でも大丈夫、そんなことはないここで私が話しているのは、純粋なコード、少なくとも一部の分析プロセス、これらのものを共有することは、コードを投稿するよりもはるかに有益です。

PHP で Tidy を使用する
PHP で Tidy を使用するには、Tidy モジュールをインストールする必要があります。これは、PHP 拡張機能 tiny.so をロードすることを意味します。具體的なプロセスは省略されており、純粋に物理的な作業(yè)です。最後に、phpinfo()で「Tidy support有効」と表示されていればOKです。

このモジュールのサポートにより、Tidy が提供するほぼすべての機能が PHP で使用できるようになります。一般的に使用される HTML のクリーニングは非常に簡単で、ドキュメントの解析ツリーを生成し、クライアント上で DOM を操作するように HTML の各ノードを操作することもできます。以下に具體的なコードの手順を示します。また、公式の PHP マニュアルも參照してください。

エラー修正とフィルタリングの PHP Tidy 実裝
上で述べた非常に多くの背景資料は非常にわかりにくいように思えますが、問題を解決するための具體的なコードが最も直接的です。

1. 単純なエラー修正の実裝

function HtmlFix($html)
{

if(!function_exists('tidy_repair_string'))
return $ html ;
//tidy を使用して HTML コードを修復します

//修復
$str = tiny_repair_string($html,
array('output-xhtml'=>true),
'utf8'); ??> $nodes = @tidy_get_body($str)->子

if(!is_array($nodes)) {
$returnVal = 0 ;
return $s;

foreach($nodes as $n){
$s .= $n->value; ??> }
return $ s;
}
上記のコードは、標準化されていない可能性のある XHTML コードをクリーンアップして修正し、標準の XHTML コードを出力します (入力と出力の両方が UTF-8 でエンコードされます)。 。実裝コードは以下のフィルタリング機能と連攜させるため、できるだけ詳細に記述したため、あまり合理化されたものではありません。

2. 高度な実裝: エラー修正とフィルタリング

機能:

XHTML エラー修正、標準 XHTML コードを出力します。
安全でないコードをフィルタリングしますが、コンテンツの表示には影響しません。スタイル/JavaScript 內(nèi)の安全でないコードのみが消去されます。
ブラウザ互換の自動行折り返しを?qū)g現(xiàn)するには、非常に長い文字列に タグを挿入します。関連記事については、Web ページ內(nèi)の非常に長いテキストの改行の問題を參照してください。
function HtmlFixSafe($html)
{

if(!function_exists('tidy_repair_string'))
return $html
//tidy を使用して HTML コードを修復します。
// 整然としたパラメータ設定
$conf = array(
'output-xhtml'=>true
,'drop-empty-paras'=>FALSE
, ,' join -classes'=>TRUE
, ,'show-body-only'=>TRUE

//修復
$str = tiny_repair_string($html,$); conf ,'utf8');
//解析ツリーを生成します
$str = tiny_parse_string($str,$conf,'utf8');

$s =''; ?? > //ボディノードを取得
$body = @tidy_get_body($str);

//関數(shù) _dumpnode、各ノードを確認し、フィルターして出力
function _dumpnode($node,&$s) ){

// ノード名を確認し、

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Mideaは、最初のDeepSeekエアコンを起動します。AIVoiceInteractionは400,000コマンドを達成できます! Mideaは、最初のDeepSeekエアコンを起動します。AIVoiceInteractionは400,000コマンドを達成できます! Mar 12, 2025 pm 12:18 PM

Mideaは、Deepseek Big Model -Midea Fresh and Clean Air Machine T6を裝備した最初のエアコンをリリースします。このエアコンには、環(huán)境に応じて溫度、濕度、風速などのパラメーターをインテリジェントに調(diào)整できる、高度な空気インテリジェントな駆動システムが裝備されています。さらに重要なことは、DeepSeek Big Modelを統(tǒng)合し、400,000を超えるAI Voiceコマンドをサポートすることです。 Mideaの動きは、業(yè)界での激しい議論を引き起こし、特に白物と大規(guī)模なモデルを組み合わせることの重要性を懸念しています。従來のエアコンの単純な溫度設定とは異なり、Midea Fresh and Clean Air Machine T6は、より複雑で曖昧な指示を理解し、家庭環(huán)境に従って濕度をインテリジェントに調(diào)整し、ユーザーエクスペリエンスを大幅に改善します。

GateToken(GT)通貨とは何ですか? GT コインの機能とトークンエコノミクスの紹介 GateToken(GT)通貨とは何ですか? GT コインの機能とトークンエコノミクスの紹介 Jul 15, 2024 pm 04:36 PM

GateToken(GT)通貨とは何ですか? GT (GateToken) は、GateChain チェーンのネイティブ資産であり、Gate.io の公式プラットフォーム通貨です。 GT コインの価値は、Gate.io および GateChain エコロジーの発展と密接に関連しています。ゲートチェーンとは何ですか? GateChain は 2018 年に誕生し、Gate.io によって開始された新世代の高性能パブリック チェーンです。 GateChain は、ユーザーのオンチェーン資産のセキュリティを保護し、便利な分散トランザクション サービスを提供することに重點を置いています。 GateChain の目標は、エンタープライズレベルの安全で効率的な分散型デジタル資産ストレージ、配信、およびトランザクションのエコシステムを構(gòu)築することです。ゲートチェーンにはオリジナルがあります

Powertoysの目的は何ですか? Powertoysの目的は何ですか? Apr 03, 2025 am 12:10 AM

Powertoysは、Windowsユーザーの生産性とシステム制御を強化するために、Microsoftが開始したツールの無料コレクションです。ファンシーゾーン管理ウィンドウレイアウトやパワーネームバッチの名前変更ファイルなどのスタンドアロンモジュールを介して機能を提供し、ユーザーワークフローをスムーズにします。

トップ10グローバルデジタル仮想通貨取引プラットフォームランキング(2025権限ランキング) トップ10グローバルデジタル仮想通貨取引プラットフォームランキング(2025権限ランキング) Mar 06, 2025 pm 04:36 PM

2025年、グローバルデジタル仮想通貨取引プラットフォームは、トランザクションのボリューム、セキュリティ、ユーザーエクスペリエンスなどの指標に基づいて、2025年に世界のトップ10のデジタル通貨取引プラットフォームを激しく競爭しています。 OKXは、強力な技術(shù)的強さとグローバルな運用戦略で最初にランクされており、Binanceは高流動性と低料金に密接に続きます。 Gate.io、Coinbase、Krakenなどのプラットフォームは、それぞれの利點がある最前線にいます。このリストには、Huobi、Kucoin、Bitfinex、Crypto.com、Geminiなどの取引プラットフォームがそれぞれ獨自の特徴がありますが、投資は注意する必要があります。プラットフォームを選択するには、セキュリティ、流動性、料金、ユーザーエクスペリエンス、通貨選択、規(guī)制コンプライアンスなどの要因を考慮し、合理的に投資する必要があります

Apple iOS 17.5 最新ベータ版がリリース! Web配信機能を追加 Apple iOS 17.5 最新ベータ版がリリース! Web配信機能を追加 Apr 17, 2024 pm 03:52 PM

Apple は、iOS17.5、iPadOS17.5、tvOS17.5、watchOS10.5、macOS Sonoma14.5 の開発者ベータ版の第 2 ラウンドをリリースしました。このうち iOS17.5 には Apple WebDistribution システムが導入されています。開発者は Apple Developer Center から新しいバージョンを入手でき、一般ユーザーは Apple Beta Software Program Web サイトから登録して公開テストに參加できます。新しいバージョンの內(nèi)部バージョン番號は、iOS 17.5 および iPadOS 17.5 の場合は 21F5058e (21F5048f の代替)、21L5553e (tvOS 17.5 および HomePod ソフトウェア 17.5 の場合は 21L55 の代替) です。

デジタル通貨アプリ用のトップ10の取引プラットフォーム、通常の通貨投機プラットフォームアプリの推奨 デジタル通貨アプリ用のトップ10の取引プラットフォーム、通常の通貨投機プラットフォームアプリの推奨 Mar 07, 2025 pm 06:51 PM

この記事では、10個のデジタル通貨トレーディング。プラットフォームを選択する際には、セキュリティ、流動性、取引料、通貨選択、ユーザーインターフェイス、カスタマーサービスサポート、規(guī)制コンプライアンスなどの要因を考慮し、リスクを慎重に評価し、盲目的にトレンドに従うことはありません。

トップ10のデジタル通貨取引プラットフォームトップ10のデジタル通貨取引プラットフォームの最新リスト トップ10のデジタル通貨取引プラットフォームトップ10のデジタル通貨取引プラットフォームの最新リスト Mar 17, 2025 pm 05:57 PM

トップ10のデジタル通貨取引プラットフォーム:1。OKX、2。BINANCE、3。GATE.IO、4。HuobiGlobal、5。Kraken、6。Coinbase、7。Kucoin、8。Bitfinex、9。Crypto.com、10。Gemini、これらの交換は、ユーザーがユーザーを選択できます。

通貨サークルでの最新ニュースアプリのランキングの推奨事項(2025年の権威あるリリース) 通貨サークルでの最新ニュースアプリのランキングの推奨事項(2025年の権威あるリリース) Apr 21, 2025 pm 09:33 PM

最高の暗號通貨取引および分析プラットフォームには、次のものが含まれます。1。OKX:トレーディングボリュームの世界のナンバーワン、複數(shù)のトランザクションをサポートし、AI市場分析とチェーン上のデータ監(jiān)視を提供します。 2。Binance:世界最大の交換、詳細な市場條件と新しい通貨の初めての提供を提供します。 3。SESAMEオープンドア:スポット取引とOTCチャネルで知られている、自動取引戦略を提供します。 4。CoinMarketCap:20,000通貨をカバーする権威ある市場データプラットフォーム。 5。COINGECKO:コミュニティの感情分析で知られることは、DefiおよびNFTトレンドの監(jiān)視を提供します。 6。非小口座:國內(nèi)の市場プラットフォーム。Aシェアと通貨市場の間の連攜の分析を提供します。 7。オンチェーンファイナンス:ブロックチェーンニュースに焦點を當て、毎日詳細なレポートを更新します。 8。ゴールデンファイナンス:24小

See all articles