CLXIV. Tidy
Wstęp
Tidy jest dowiązaniem do narzędzia Tidy HTML Czyść i Napraw, które pozwala nie tylko porządkować i manipulować dokumentami HTML ale również przemierzać drzewo dokumentu.
Wymagania
Aby używać Tidy musisz mieć zainstalowaną bibliotekę libtidy dostępną na stronie https://tidy.sourceforge.net/.
Instalacja
Tidy jest obecnie dostępne dla PHP 4.3.x i PHP 5 jako rozszerzenie PECL https://pecl.php.net/package/tidy.
Notatka: Tidy 1.0 jest dostępne w PHP 4.3.x, natomiast Tidy 2.0 dla PHP 5.
Jeżeli PEAR jest dostępny na Twoim systemie uniksowym możesz użyć instalatora pear do zainstalowania rozszerzenia tidy, następującym poleceniem: pecl install tidy.
Zawsze możesz pobrać źródła tar.gz i zainstalować tidy ręcznie:
Użytkownicy Windows mogą pobrać skompilowaną bibliotekę dll ze strony https://pecl4win.php.net/ext.php/php_tidy.dll.
  W PHP5 wystarczy dodać opcję podczas kompilacji --with-tidy.
 
Konfiguracja uruchomieniowa
Na działanie tych funcji wpływają ustawienia zawarte w pliku php.ini.
Tabela 1. Opcje konfiguracyjne Tidy
| Nazwa | Domyślnie | Zmieniany | Dziennik zmian | 
|---|---|---|---|
| tidy.default_config | "" | PHP_INI_SYSTEM | Dostępna od PHP 5.0.0. | 
| tidy.clean_output | "0" | PHP_INI_PERDIR | Dostępna od PHP 5.0.0. | 
Oto krótkie wyjaśnienie dyrektyw konfiguracji.
tidy.default_configstringDomyślna ścieżka do pliku konfiguracyjnego tidy.
tidy.clean_outputbooleanWłącza/wyłącza wysyłanie wyników przetworzonych przez Tidy na standardowe wyjście.
Ostrzeżenie Nie ustawiaj tej opcji tidy.clean_output na TRUE jeżeli generujesz nietekstową treść np. dynamiczne obrazy.
Typy zasobów
To rozszerzenie nie posiada żadnych rodzajów zasobów.
Klasy predefiniowane
tidyNode
Metody
tidyNode->hasChildren - Zwraca TRUE jeżeli bieżący węzeł posiada potomków
tidyNode->hasSiblings - Zwraca TRUE jeżeli bieżący węzeł posiada sąsiadów
tidyNode->isAsp - Zwraca TRUE jeżeli bieżący węzeł jest kodem ASP
tidyNode->isComment - Zwraca TRUE jeżeli bieżący węzeł jest komentarzem
tidyNode->isHtml - Zwraca TRUE jeżeli bieżący węzeł to HTML
tidyNode->isJste - Zwraca TRUE jeżeli bieżący węzeł jest kodem JSTE
tidyNode->isPhp - Zwraca TRUE jeżeli bieżący węzeł jest kodem PHP
tidyNode->isText - Zwraca TRUE jeżeli bieżący węzeł jest czystym tekstem (nie jest kodem)
Właściwości
value - wartość węzła (np.: tekst)
name - nazwa znacznika (np. html, a, itd.)
type - typ węzła (jedna z poniższych stałych, np. TIDY_NODETYPE_PHP)
line* - linia w której zaczyna się węzeł
column* - kolumna w której zaczyna się węzeł
proprietary* - TRUE jeżeli węzeł wskazuje na niekompatybilny znacznik
id - identyfikator ID znacznika (jeden z poniższych, np. TIDY_TAG_FRAME)
attribute - tablica zawierająca argumenty bieżącego węzła, lub NULL jeżeli nie występują
child - tablica zawierająca potomków węzłów uporządkowanych przez Tidy, lub NULL jeżeli nie występują
Notatka: Właściwości oznaczone symbolem * są dostępne od PHP 5.1.0.
Stałe predefiniowane
Poniższe stałe są zdefiniowane w tym rozszerzeniu i stają się dostępne, gdy rozszerzenie jest dokompilowane do PHP, lub załadowane dynamicznie przy starcie.
Każda stała TIDY_TAG_XXX reprezentuje znacznik HTML. Na przykład, TIDY_TAG_A reprezentuje znacznik < a href="XX">link</a>. Każda stała TIDY_ATTR_XXX reprezentuje atrybut HTML. Na przykład TIDY_ATTR_HREF reprezentuje atrybut HREF w poprzednim przykładzie.
Zdefiniowane są następujące stałe:
Tabela 2. znaczniki tidy
| stała | 
|---|
| 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 | 
Tabela 3. atrybuty tidy
| stała | 
|---|
| 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 | 
Tabela 4. typy węzłów tidy
| stała | opis | 
|---|---|
| TIDY_NODETYPE_ROOT | podstawowy węzeł | 
| TIDY_NODETYPE_DOCTYPE | typ dokumentu | 
| TIDY_NODETYPE_COMMENT | komentarz HTML | 
| TIDY_NODETYPE_PROCINS | instrukcja przetwarzania | 
| TIDY_NODETYPE_TEXT | tekst | 
| TIDY_NODETYPE_START | znacznik otwierajÄ…cy | 
| TIDY_NODETYPE_END | znacznik zamykajÄ…cy | 
| TIDY_NODETYPE_STARTEND | pusty znacznik | 
| TIDY_NODETYPE_CDATA | CDATA | 
| TIDY_NODETYPE_SECTION | sekcja XML | 
| TIDY_NODETYPE_ASP | kod ASP | 
| TIDY_NODETYPE_JSTE | kod JSTE | 
| TIDY_NODETYPE_PHP | kod PHP | 
| TIDY_NODETYPE_XMLDECL | deklaracja XML | 
Przykłady
Ten nieskomplikowany przykład pokazuje podstawowe użycie Tidy.
- Spis treści
 - ob_tidyhandler -- ob_start callback function to repair the buffer
 - tidy_access_count -- Returns the Number of Tidy accessibility warnings encountered for specified document
 - tidy_clean_repair -- Execute configured cleanup and repair operations on parsed markup
 - 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_opt_doc -- Returns the documentation for the given option name
 - 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->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->next -- Zwraca następnego sąsiada bieżącego węzła
 - tidy_node->prev -- Zwraca poprzedniego sąsiada bieżącego węzła
 - 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 -- Set the input/output character encoding for parsing markup
 - tidy_setopt -- Updates the configuration settings for the specified tidy document
 - tidy_warning_count -- Zwraca liczbę ostrzeżeń Tidy napotkanych w określonym dokumencie
 - tidyNode->hasChildren -- Returns true if this node has children
 - tidyNode->hasSiblings -- Returns true if this node has siblings
 - tidyNode->isAsp -- Zwraca prawdę jeżeli węzeł jest kodem ASP (Active Server Pages)
 - tidyNode->isComment -- Zwraca prawdę jeżeli węzeł jest komentarzem
 - tidyNode->isHtml -- Zwraca prawdę jeżeli węzeł jest częścią dokumentu HTML
 - tidyNode->isJste -- Zwraca prawdę jeżeli węzeł jest kodem JSTE (JavaScript Template Engine)
 - tidyNode->isPhp -- Zwraca prawdę jeżeli węzeł jest kodem PHP
 - tidyNode->isText -- Zwraca prawdę jeżeli węzeł jest czystym tekstem (nie jest kodem)
 - tidyNode::getParent -- zwraca rodzica bieżącego węzła
 
| Poprzedni | Spis treści | Następny | 
| tcpwrap_check | Początek rozdziału |