Tidy 関数
導入
Tidyは、「Tidy HTML clean and repair utility」用のバインディングで、 HTML文書の誤りを直すだけでなく、操作することやドキュメントツリーを操作する ことも可能となります。
要件
Tidyを使用するには、libtidyがインストールされている必要があります。 libtidyは、tidyのホームページ » https://tidy.sourceforge.net/で入手可能です。
インストール手順
Tidy は、現在、PHP 4.3.xおよびPHP 5用として、PECL拡張モジュールとして » https://pecl.php.net/package/tidy. から入手可能です。
注意: Tidy 1.0 はPHP 4.3.x専用で、Tidy 2.0はPHP 5は専用です。
» PEAR は、 *nix互換のシステムで利用可能で、tidy拡張モジュールをインストールする際に 以下のようにpearインストーラを使用することができます。 : pecl install tidy
次のようにマニュアルでtar.gzパッケージをダウンロードし、tidyをインストール することも可能です。
Example#1 PHP 4.3.x において tidy をマニュアルでインストールする
gunzip tidy-xxx.tgz tar -xvf tidy-xxx.tar cd tidy-xxx phpize ./configure && make && make install
Windows ユーザは、拡張モジュールの DLL を » https://pecl4win.php.net/ext.php/php_tidy.dll からダウンロードすることが可能です。
PHP5 においては、--with-tidy オプションを使ってコンパイルするだけです。
実行時設定
php.ini の設定により動作が変化します。
名前 | デフォルト | 変更の可否 | 変更履歴 |
---|---|---|---|
tidy.default_config | "" | PHP_INI_SYSTEM | PHP 5.0.0 以降で利用可能です。 |
tidy.clean_output | "0" | PHP_INI_USER | PHP 5 では PHP_INI_PERDIR。PHP 5.0.0 以降で利用可能です。 |
以下に設定ディレクティブに関する 簡単な説明を示します。
リソース型
リソース型は定義されていません。
定義済みクラス
tidyNode
メソッド
-
tidyNode::getParent - カレントノードの親を返します。
-
tidyNode->hasChildren - カレントノードが子を持つ場合、TRUE を返します。
-
tidyNode->hasSiblings - カレントノードが兄弟を持つ場合、TRUE を返します。
-
tidyNode->isAsp - カレントノードが ASP コードの場合、TRUE を返します。
-
tidyNode->isComment - カレントノードが コメントの場合、TRUE を返します。
-
tidyNode->isHtml - カレントノードが HTML の場合、TRUE を返します。
-
tidyNode->isJste - カレントノードが JSTE の場合、TRUE を返します。
-
tidyNode->isPhp - カレントノードが PHP の場合、TRUE を返します。
-
tidyNode->isText - カレントノードがテキスト (マークアップでない) の場合、 TRUE を返します。
プロパティ
-
value - ノードの値 (HTML テキストなど)
-
name - タグの名前 (html, a, など)
-
type - ノードの種類 (上記の定数の 1 つ。例えば TIDY_NODETYPE_PHP)
-
line* - ノードが開始する行
-
column* - ノードが開始するカラム
-
proprietary* - もしノードがプロプライエタリなタグの場合、 TRUE
-
id - タグの ID (上記の定数の 1 つ。例えば TIDY_TAG_FRAME)
-
attribute - カレントノードの属性の配列。存在しない場合 NULL
-
child - 子の tidyNode の配列。存在しない場合 NULL
注意: * 付きのプロパティは PHP 5.1.0 からのみ利用可能です。
定義済み定数
以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
それぞれの TIDY_TAG_XXX は HTML タグに相当します。 例えば、 TIDY_TAG_A は <a href="XX">link</a> タグに相当します。 それぞれの TIDY_ATTR_XXX は、HTML 属性に相当します。 例えば、 TIDY_ATTR_HREF は前の例の href 属性に相当します。
以下の定数が定義されています。
定数 |
---|
TIDY_TAG_UNKNOWN |
TIDY_TAG_A |
TIDY_TAG_ABBR |
TIDY_TAG_ACRONYM |
TIDY_TAG_ALIGN |
TIDY_TAG_APPLET |
TIDY_TAG_AREA |
TIDY_TAG_B |
TIDY_TAG_BASE |
TIDY_TAG_BASEFONT |
TIDY_TAG_BDO |
TIDY_TAG_BGSOUND |
TIDY_TAG_BIG |
TIDY_TAG_BLINK |
TIDY_TAG_BLOCKQUOTE |
TIDY_TAG_BODY |
TIDY_TAG_BR |
TIDY_TAG_BUTTON |
TIDY_TAG_CAPTION |
TIDY_TAG_CENTER |
TIDY_TAG_CITE |
TIDY_TAG_CODE |
TIDY_TAG_COL |
TIDY_TAG_COLGROUP |
TIDY_TAG_COMMENT |
TIDY_TAG_DD |
TIDY_TAG_DEL |
TIDY_TAG_DFN |
TIDY_TAG_DIR |
TIDY_TAG_DIV |
TIDY_TAG_DL |
TIDY_TAG_DT |
TIDY_TAG_EM |
TIDY_TAG_EMBED |
TIDY_TAG_FIELDSET |
TIDY_TAG_FONT |
TIDY_TAG_FORM |
TIDY_TAG_FRAME |
TIDY_TAG_FRAMESET |
TIDY_TAG_H1 |
TIDY_TAG_H2 |
TIDY_TAG_H3 |
TIDY_TAG_H4 |
TIDY_TAG_H5 |
TIDY_TAG_H6 |
TIDY_TAG_HEAD |
TIDY_TAG_HR |
TIDY_TAG_HTML |
TIDY_TAG_I |
TIDY_TAG_IFRAME |
TIDY_TAG_ILAYER |
TIDY_TAG_IMG |
TIDY_TAG_INPUT |
TIDY_TAG_INS |
TIDY_TAG_ISINDEX |
TIDY_TAG_KBD |
TIDY_TAG_KEYGEN |
TIDY_TAG_LABEL |
TIDY_TAG_LAYER |
TIDY_TAG_LEGEND |
TIDY_TAG_LI |
TIDY_TAG_LINK |
TIDY_TAG_LISTING |
TIDY_TAG_MAP |
TIDY_TAG_MARQUEE |
TIDY_TAG_MENU |
TIDY_TAG_META |
TIDY_TAG_MULTICOL |
TIDY_TAG_NOBR |
TIDY_TAG_NOEMBED |
TIDY_TAG_NOFRAMES |
TIDY_TAG_NOLAYER |
TIDY_TAG_NOSAVE |
TIDY_TAG_NOSCRIPT |
TIDY_TAG_OBJECT |
TIDY_TAG_OL |
TIDY_TAG_OPTGROUP |
TIDY_TAG_OPTION |
TIDY_TAG_P |
TIDY_TAG_PARAM |
TIDY_TAG_PLAINTEXT |
TIDY_TAG_PRE |
TIDY_TAG_Q |
TIDY_TAG_RP |
TIDY_TAG_RT |
TIDY_TAG_RTC |
TIDY_TAG_RUBY |
TIDY_TAG_S |
TIDY_TAG_SAMP |
TIDY_TAG_SCRIPT |
TIDY_TAG_SELECT |
TIDY_TAG_SERVER |
TIDY_TAG_SERVLET |
TIDY_TAG_SMALL |
TIDY_TAG_SPACER |
TIDY_TAG_SPAN |
TIDY_TAG_STRIKE |
TIDY_TAG_STRONG |
TIDY_TAG_STYLE |
TIDY_TAG_SUB |
TIDY_TAG_TABLE |
TIDY_TAG_TBODY |
TIDY_TAG_TD |
TIDY_TAG_TEXTAREA |
TIDY_TAG_TFOOT |
TIDY_TAG_TH |
TIDY_TAG_THEAD |
TIDY_TAG_TITLE |
TIDY_TAG_TR |
TIDY_TAG_TR |
TIDY_TAG_TT |
TIDY_TAG_U |
TIDY_TAG_UL |
TIDY_TAG_VAR |
TIDY_TAG_WBR |
TIDY_TAG_XMP |
定数 |
---|
TIDY_ATTR_UNKNOWN |
TIDY_ATTR_ABBR |
TIDY_ATTR_ACCEPT |
TIDY_ATTR_ACCEPT_CHARSET |
TIDY_ATTR_ACCESSKEY |
TIDY_ATTR_ACTION |
TIDY_ATTR_ADD_DATE |
TIDY_ATTR_ALIGN |
TIDY_ATTR_ALINK |
TIDY_ATTR_ALT |
TIDY_ATTR_ARCHIVE |
TIDY_ATTR_AXIS |
TIDY_ATTR_BACKGROUND |
TIDY_ATTR_BGCOLOR |
TIDY_ATTR_BGPROPERTIES |
TIDY_ATTR_BORDER |
TIDY_ATTR_BORDERCOLOR |
TIDY_ATTR_BOTTOMMARGIN |
TIDY_ATTR_CELLPADDING |
TIDY_ATTR_CELLSPACING |
TIDY_ATTR_CHAR |
TIDY_ATTR_CHAROFF |
TIDY_ATTR_CHARSET |
TIDY_ATTR_CHECKED |
TIDY_ATTR_CITE |
TIDY_ATTR_CLASS |
TIDY_ATTR_CLASSID |
TIDY_ATTR_CLEAR |
TIDY_ATTR_CODE |
TIDY_ATTR_CODEBASE |
TIDY_ATTR_CODETYPE |
TIDY_ATTR_COLOR |
TIDY_ATTR_COLS |
TIDY_ATTR_COLSPAN |
TIDY_ATTR_COMPACT |
TIDY_ATTR_CONTENT |
TIDY_ATTR_COORDS |
TIDY_ATTR_DATA |
TIDY_ATTR_DATAFLD |
TIDY_ATTR_DATAPAGESIZE |
TIDY_ATTR_DATASRC |
TIDY_ATTR_DATETIME |
TIDY_ATTR_DECLARE |
TIDY_ATTR_DEFER |
TIDY_ATTR_DIR |
TIDY_ATTR_DISABLED |
TIDY_ATTR_ENCODING |
TIDY_ATTR_ENCTYPE |
TIDY_ATTR_FACE |
TIDY_ATTR_FOR |
TIDY_ATTR_FRAME |
TIDY_ATTR_FRAMEBORDER |
TIDY_ATTR_FRAMESPACING |
TIDY_ATTR_GRIDX |
TIDY_ATTR_GRIDY |
TIDY_ATTR_HEADERS |
TIDY_ATTR_HEIGHT |
TIDY_ATTR_HREF |
TIDY_ATTR_HREFLANG |
TIDY_ATTR_HSPACE |
TIDY_ATTR_HTTP_EQUIV |
TIDY_ATTR_ID |
TIDY_ATTR_ISMAP |
TIDY_ATTR_LABEL |
TIDY_ATTR_LANG |
TIDY_ATTR_LANGUAGE |
TIDY_ATTR_LAST_MODIFIED |
TIDY_ATTR_LAST_VISIT |
TIDY_ATTR_LEFTMARGIN |
TIDY_ATTR_LINK |
TIDY_ATTR_LONGDESC |
TIDY_ATTR_LOWSRC |
TIDY_ATTR_MARGINHEIGHT |
TIDY_ATTR_MARGINWIDTH |
TIDY_ATTR_MAXLENGTH |
TIDY_ATTR_MEDIA |
TIDY_ATTR_METHOD |
TIDY_ATTR_MULTIPLE |
TIDY_ATTR_NAME |
TIDY_ATTR_NOHREF |
TIDY_ATTR_NORESIZE |
TIDY_ATTR_NOSHADE |
TIDY_ATTR_NOWRAP |
TIDY_ATTR_OBJECT |
TIDY_ATTR_OnAFTERUPDATE |
TIDY_ATTR_OnBEFOREUNLOAD |
TIDY_ATTR_OnBEFOREUPDATE |
TIDY_ATTR_OnBLUR |
TIDY_ATTR_OnCHANGE |
TIDY_ATTR_OnCLICK |
TIDY_ATTR_OnDATAAVAILABLE |
TIDY_ATTR_OnDATASETCHANGED |
TIDY_ATTR_OnDATASETCOMPLETE |
TIDY_ATTR_OnDBLCLICK |
TIDY_ATTR_OnERRORUPDATE |
TIDY_ATTR_OnFOCUS |
TIDY_ATTR_OnKEYDOWN |
TIDY_ATTR_OnKEYPRESS |
TIDY_ATTR_OnKEYUP |
TIDY_ATTR_OnLOAD |
TIDY_ATTR_OnMOUSEDOWN |
TIDY_ATTR_OnMOUSEMOVE |
TIDY_ATTR_OnMOUSEOUT |
TIDY_ATTR_OnMOUSEOVER |
TIDY_ATTR_OnMOUSEUP |
TIDY_ATTR_OnRESET |
TIDY_ATTR_OnROWENTER |
TIDY_ATTR_OnROWEXIT |
TIDY_ATTR_OnSELECT |
TIDY_ATTR_OnSUBMIT |
TIDY_ATTR_OnUNLOAD |
TIDY_ATTR_PROFILE |
TIDY_ATTR_PROMPT |
TIDY_ATTR_RBSPAN |
TIDY_ATTR_READONLY |
TIDY_ATTR_REL |
TIDY_ATTR_REV |
TIDY_ATTR_RIGHTMARGIN |
TIDY_ATTR_ROWS |
TIDY_ATTR_ROWSPAN |
TIDY_ATTR_RULES |
TIDY_ATTR_SCHEME |
TIDY_ATTR_SCOPE |
TIDY_ATTR_SCROLLING |
TIDY_ATTR_SELECTED |
TIDY_ATTR_SHAPE |
TIDY_ATTR_SHOWGRID |
TIDY_ATTR_SHOWGRIDX |
TIDY_ATTR_SHOWGRIDY |
TIDY_ATTR_SIZE |
TIDY_ATTR_SPAN |
TIDY_ATTR_SRC |
TIDY_ATTR_STANDBY |
TIDY_ATTR_START |
TIDY_ATTR_STYLE |
TIDY_ATTR_SUMMARY |
TIDY_ATTR_TABINDEX |
TIDY_ATTR_TARGET |
TIDY_ATTR_TEXT |
TIDY_ATTR_TITLE |
TIDY_ATTR_TOPMARGIN |
TIDY_ATTR_TYPE |
TIDY_ATTR_USEMAP |
TIDY_ATTR_VALIGN |
TIDY_ATTR_VALUE |
TIDY_ATTR_VALUETYPE |
TIDY_ATTR_VERSION |
TIDY_ATTR_VLINK |
TIDY_ATTR_VSPACE |
TIDY_ATTR_WIDTH |
TIDY_ATTR_WRAP |
TIDY_ATTR_XML_LANG |
TIDY_ATTR_XML_SPACE |
TIDY_ATTR_XMLNS |
定数 | 説明 |
---|---|
TIDY_NODETYPE_ROOT | ルートノード |
TIDY_NODETYPE_DOCTYPE | 文章型 |
TIDY_NODETYPE_COMMENT | HTML コメント |
TIDY_NODETYPE_PROCINS | 処理命令 |
TIDY_NODETYPE_TEXT | テキスト |
TIDY_NODETYPE_START | 開始タグ |
TIDY_NODETYPE_END | 終了タグ |
TIDY_NODETYPE_STARTEND | 空タグ |
TIDY_NODETYPE_CDATA | CDATA |
TIDY_NODETYPE_SECTION | XML セクション |
TIDY_NODETYPE_ASP | ASP コード |
TIDY_NODETYPE_JSTE | JSTE コード |
TIDY_NODETYPE_PHP | PHP コード |
TIDY_NODETYPE_XMLDECL | XML 宣言 |
例
このシンプルな例は、Tidy の基本的な使い方を示しています。
Example#2 Tidy の基本的な使用法
<?php
ob_start();
?>
<html>a html document</html>
<?php
$html = ob_get_clean();
// とある設定
$config = array(
'indent' => true,
'output-xhtml' => true,
'wrap' => 200);
// Tidy
$tidy = new tidy;
$tidy->parseString($html, $config, 'utf8');
$tidy->cleanRepair();
// 出力
echo $tidy;
?>
目次
- ob_tidyhandler — バッファを修正するための ob_start コールバック関数
- tidy_access_count — 指定したドキュメントについて発生したTidyアクセシビリティ警告の数を返す
- tidy_clean_repair — パースされたマークアップに設定に基く誤りの修正を行う
- tidy_config_count — 指定したドキュメントについて発生した Tidy 設定エラーの数を返す
- tidy::__construct — 新規 Tidy オブジェクトを生成する
- tidy_diagnose — パース、修正されたマークアップの診断を行う
- tidy_error_count — 指定したドキュメントについて発生した Tidy エラーの数を返す
- tidy_get_body — Tidy パースツリーの タグから始まる tidyNode オブジェクトを返す
- tidy_get_config — 現在の Tidy の設定を取得する
- tidy_get_error_buffer — 指定したドキュメントのパースで発生した警告とエラーを返す
- tidy_get_head — Tidy パースツリーの タグから始まる tidyNode オブジェクトを返す
- tidy_get_html_ver — 指定したドキュメントで検出された HTML バージョンを取得する
- tidy_get_html — Tidy パースツリーの タグから始まる tidyNode オブジェクトを返す
- tidy_get_opt_doc — 与えられたオプション名に対するドキュメントを返す
- tidy_get_output — パースされた Tidy マークアップを表す文字列を返す
- tidy_get_release — Tidy ライブラリのリリース日 (バージョン) を取得する
- tidy_get_root — Tidy パースツリーのルートを表す tidyNode を返す
- tidy_get_status — 指定したドキュメントのステータスを取得する
- tidy_getopt — Tidy ドキュメントについて指定した設定オプションの値を返す
- tidy_is_xhtml — ドキュメントが XHTML ドキュメントかどうかを示す
- tidy_is_xml — ドキュメントが一般的な XML ドキュメント (非 HTML/XHTML) かどうかを示す
- tidy_load_config — 指定したエンコーディングで ASCII コードの Tidy 設定ファイルをロードする
- tidy_node->get_attr — 指定された属性 ID を持つ属性を返す
- tidy_node->get_nodes — 指定された ID を持つノード以下のノードの配列を返す
- tidy_node->next — このノードの次の兄弟を返す
- tidy_node->prev — このノードの前の兄弟を返す
- tidy_parse_file — ファイルまたは URI にあるマークアップをパースする
- tidy_parse_string — 文字列にストアされたドキュメントをパースする
- tidy_repair_file — ファイルを修正し、それを文字列として返す
- tidy_repair_string — 別途提供される設定ファイルを使用して文字列を修正する
- tidy_reset_config — Tidy の設定をデフォルト値に戻す
- tidy_save_config — 現在の設定を名前が付けられたファイルに保存する
- tidy_set_encoding — マークアップをパースする際の入力/出力エンコーディングを設定する
- tidy_setopt — 指定した Tidy ドキュメントについての設定を更新する
- tidy_warning_count — 指定したドキュメントについて発生した Tidy 警告の数を返す
- tidyNode->hasChildren — このノードが子を持つ場合 true を返す
- tidyNode->hasSiblings — このノードが兄弟ノードを持つ場合 true を返す
- tidyNode->isAsp — このノードが ASP コードの場合 true を返す
- tidyNode->isComment — このノードがコメントである場合 true を返す
- tidyNode->isHtml — このノードが HTML ドキュメントの場合 true を返す
- tidyNode->isJste — このノードが JSTE であるの場合 true を返す
- tidyNode->isPhp — このノードが PHP コードの場合 true を返す
- tidyNode->isText — このノードがテキスト (マークアップでない) の場合 true を返す
- tidyNode::getParent — カレントノードの親ノードを返す