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 — カレントノードの親ノードを返す