PHP: Tidy関数 - Manual
PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links | my php.net 
search for in the  
<tcpwrap_checkob_tidyhandler>
view the version of this page
Last updated: Tue, 21 Dec 2004

CXIX. Tidy関数

導入

Tidyは、「Tidy HTML clean and repair utility」用のバインディングで、 HTML文書の誤りを直すだけでなく、操作することやドキュメントツリーを操作する ことも可能となります。

要件

Tidyを使用するには、libtidyがインストールされている必要があります。 libtidyは、tidyのホームページ で入手可能です。

インストール手順

Tidy は、現在、PHP 4.3.xおよびPHP 5用として、PECL拡張モジュールとして . から入手可能です。

注意: Tidy 1.0 はPHP 4.3.x専用で、Tidy 2.0はPHP 5は専用です。

は、 *nix互換のシステムで利用可能で、tidy拡張モジュールをインストールする際に 以下のおゆなpearインストーラを使用することができます。 : pear -v install tidy

次のようにマニュアルでtar.gzパッケージをダウンロードし、tidyをインストール することも可能です。

例 1. tidyをマニュアルでインストールする

gunzip tidy-xxx.tgz
tar -xvf tidy-xxx.tar
cd tidy-xxx
phpize
./configure && make && make install

Windowsは、拡張モジュールのDLLphp_tidy.dllを から ダウンロードすることが可能です。

実行用の設定

これらの関数の動作は、php.iniの設定により変化します。

表 1. Tidy設定オプション

名前デフォルト変更の可否関数
tidy.default_config""PHP_INI_SYSTEMtidy設定ファイルのデフォルトパス
tidy.clean_output0PHP_INI_PERDIRTidyにより出力を修正する機能をオンまたはオフにする
PHP_INI_* 定数に関する詳細と定義については、 ini_set()を参照して下さい。

警告

動的に生成されるイメージにようなHTML以外のコンテンツを生成している場合は、 tidy.clean_output をオンにしないでください。

リソース型

この拡張モジュールはリソース型を全く定義しません。

定義済みの定数

これらの定数は、この拡張モジュールで定義されており、 この拡張モジュールがPHP内部にコンパイルされているか実行時に動的にロー ドされるかのどちらかの場合のみ使用可能です。

以下の定数が定義されています。

表 2. tidyタグ定数

定数説明
TIDY_TAG_UNKNOWN 
TIDY_TAG_A 
TIDY_TAG_ABBR 
TIDY_TAG_ACRONYM 
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_6 
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_NOSAFE 
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 

表 3. tidy attribute constants

constantdescription
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 

表 4. tidy nodetype constants

constantdescription
TIDY_NODETYPE_ROOT 
TIDY_NODETYPE_DOCTYPE 
TIDY_NODETYPE_COMMENT 
TIDY_NODETYPE_PROCINS 
TIDY_NODETYPE_TEXT 
TIDY_NODETYPE_START 
TIDY_NODETYPE_END 
TIDY_NODETYPE_STARTEND 
TIDY_NODETYPE_CDATA 
TIDY_NODETYPE_SECTION 
TIDY_NODETYPE_ASP 
TIDY_NODETYPE_JSTE 
TIDY_NODETYPE_PHP 
TIDY_NODETYPE_XMLDECL 

目次
ob_tidyhandler --  ob_start callback function to repair the buffer
tidy_access_count --  指定したドキュメントについて発生したTidyアクセシビリティ警告の数を返す
tidy_clean_repair --  パースされたマークアップに設定に基く誤りの修正を行う
tidy_config_count --  Returns the Number of Tidy configuration errors encountered for specified document
tidy::__construct --  Constructs a new tidy object
tidy_diagnose --  Run configured diagnostics on parsed and repaired markup
tidy_error_count --  Returns the Number of Tidy errors encountered for specified document
tidy_get_body --  Returns a tidyNode Object starting from the <body> tag of the tidy parse tree
tidy_get_config --  Get current Tidy configuration
tidy_get_error_buffer --  Return warnings and errors which occurred parsing the specified document
tidy_get_head --  Returns a tidyNode Object starting from the <head> tag of the tidy parse tree
tidy_get_html_ver --  Get the Detected HTML version for the specified document
tidy_get_html --  Returns a tidyNode Object starting from the <html> tag of the tidy parse tree
tidy_get_output --  Return a string representing the parsed tidy markup
tidy_get_release --  Get release date (version) for Tidy library
tidy_get_root --  Returns a tidyNode object representing the root of the tidy parse tree
tidy_get_status --  Get status of specified document
tidy_getopt --  Returns the value of the specified configuration option for the tidy document
tidy_is_xhtml --  Indicates if the document is a XHTML document
tidy_is_xml --  Indicates if the document is a generic (non HTML/XHTML) XML document
tidy_load_config --  Load an ASCII Tidy configuration file with the specified encoding
tidy_node->children --  Returns an array of child nodes
tidy_node->get_attr --  Return the attribute with the provided attribute id
tidy_node->get_nodes --  Return an array of nodes under this node with the specified id
tidy_node->hasChildren --  Returns true if this node has children
tidy_node->hasSiblings --  Returns true if this node has siblings
tidy_node->isComment --  Returns true if this node represents a comment
tidy_node->isHtml --  Returns true if this node is part of a HTML document
tidy_node->isJste --  Returns true if this node is JSTE
tidy_node->isText --  Returns true if this node represents text (no markup)
tidy_node->isXhtml --  Returns true if this node is part of a XHTML document
tidy_node->isXml --  Returns true if this node is part of a XML document
tidy_node->next --  Returns the next sibling to this node
tidy_node->prev --  Returns the previous sibling to this node
tidy_parse_file --  Parse markup in file or URI
tidy_parse_string --  Parse a document stored in a string
tidy_repair_file --  Repair a file and return it as a string
tidy_repair_string --  Repair a string using an optionally provided configuration file
tidy_reset_config --  Restore Tidy configuration to default values
tidy_save_config --  Save current settings to named file
tidy_set_encoding --  マークアップをパースする際の入力/出力エンコーディングを設定する
tidy_setopt --  Updates the configuration settings for the specified tidy document
tidy_warning_count --  Returns the Number of Tidy warnings encountered for specified document
tidyNode->isAsp --  Returns true if this node is ASP
tidyNode->isPhp --  Returns true if this node is PHP


add a note add a note User Contributed Notes
Tidy関数
19-Feb-2005 11:47
There is a HTML/XHTML validator based on tidy at

It is released under LGPL.
mohan at asix dot com dot my
11-Feb-2005 08:23
To those who need to install libtidy on mac os x , here is a guide that worked for me :

If you're on Mac OS X, you'll need to tell the Makefile that you use
ranlib:

   $ export set RANLIB=ranlib

Change to the directory with the Makefile in it, and run make.
This example uses the GNU make Makefile.

   $ cd tidy/build/gmake/

   $ make
   if [ ! -d ./obj ]; then mkdir ./obj; fi
   gcc -o obj/access.o ...
   ... etc etc etc ...

Install the libs, headers and the tidy executable:

   $ sudo make install

If you're on Mac OS X, you'll have to run ranlib again on the installed
lib:

   $ sudo ranlib /usr/local/lib/libtidy.a
Jon Dowland (bugs at alcopop dot org)
01-Feb-2005 11:40
Rough installation instructions for debian/testing:

Use debian's apt package manager to install the required development packages

$ apt-get install php4-dev php4-pear libtidy-dev

Then use pear to install tidy

$ pear install tidy

Note: I did /not/ have success installing the tarball locally. Only using this method was the .so put in the correct place.

I also had to add an entry to the php.ini

$ echo extension=tidy.so >> /etc/php4/apache/php.ini
$ apachectl restart

...and you're done.
13-Jan-2005 07:20
Just in case anyone else has been having problems using the tidy extension in *PHP4 v4.3.10. Here is a working example:

$html = '<HTML><HEAD></HEAD><BODY>Hello World</BODY></HTML>';
$config = array('indent'=> TRUE,
               'output-xhtml' => TRUE,
               'wrap' => 80);
tidy_set_encoding('UTF8');
foreach ($config as $key => $value) {
   tidy_setopt($key,$value);
}
tidy_parse_string($html);
tidy_clean_repair();
echo tidy_get_output();

Resultant HTML should be similar to:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "">
<html xmlns="">
<head>
<title></title>
</head>
<body>
Hello World
</body>
</html>
doodleelephant
16-Nov-2004 01:34
I'm installing PHP 5.0.2 on Redhat Linux (I forget the version. Enterprise WS 3 I think) I had troubles installing the libtidy. It consistently complained that it could not find 'libtidy'. I finally got a clue into how to install it (in build/gnuauto/readme.txt). This is how I finally got it to install (after lots of trial and error):

First, don't get the binary distribution of of tidy.sf.net. It's not what you want. You need the source distribution.

Command by command this is what I did:
=======

wget
tar -xzf tidy_src.tgz
cd tidy
/bin/sh build/gnuauto/setup.sh
./configure --prefix=/usr
make
make install
cd [php source directory]
./configure --with-tidy=/usr --[other extensions]
make
make install

=======
Tada. Finally it doesn't complain when I configure PHP about the installation. The info I needed was stuck in that build/gnuauto/readme.txt file in the tidy directory.

Took me a while. Hope my trials can help others save time.

Doodleelephant
bill dot mccuistion at qbopen dot com
30-Oct-2004 05:53
Installing tidy on Fedora Core 2 required three libraries:

tidy...
tidy-devel...
libtidy...

All of which I found at

Then, finally, could "./configure --with-tidy"

Hope this helps someone out.  This was "REALLY" hard (for me) to figure out as no where else was clearly documented.

<tcpwrap_checkob_tidyhandler>
 Last updated: Tue, 21 Dec 2004
show source | credits | sitemap | contact | advertising | mirror sites 
Copyright © 2001-2005 The PHP Group
All rights reserved.
This unofficial mirror is operated at: /
Last updated: Mon Mar 14 08:13:06 2005 Local time zone must be set--see zic manual page