summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Coggeshall <john@php.net>2003-09-22 18:40:38 +0000
committerJohn Coggeshall <john@php.net>2003-09-22 18:40:38 +0000
commitd8eeb8e28673236bca3f066ded75037a5bdf6378 (patch)
tree86098c5a695e81f72741d5c9d6ade955c6491fbd
parent6b567f80c7ffc57957107949f90080d7bcb24744 (diff)
downloadphp-git-d8eeb8e28673236bca3f066ded75037a5bdf6378.tar.gz
Updated test cases and examples and cleaned up the new OO code so it will
be easier to maintain.
-rw-r--r--ext/tidy/README113
-rw-r--r--ext/tidy/TODO4
-rw-r--r--ext/tidy/examples/cleanhtml.php16
-rw-r--r--ext/tidy/examples/dumpit.php14
-rw-r--r--ext/tidy/examples/urlgrab.php15
-rw-r--r--ext/tidy/php_tidy.h27
-rw-r--r--ext/tidy/tests/002.phpt7
-rw-r--r--ext/tidy/tests/003.phpt8
-rw-r--r--ext/tidy/tests/004.phpt9
-rw-r--r--ext/tidy/tests/005.phpt6
-rw-r--r--ext/tidy/tests/006.phpt6
-rw-r--r--ext/tidy/tests/007.phpt15
-rw-r--r--ext/tidy/tidy.c106
13 files changed, 134 insertions, 212 deletions
diff --git a/ext/tidy/README b/ext/tidy/README
index 08bb1a9536..2d4e015176 100644
--- a/ext/tidy/README
+++ b/ext/tidy/README
@@ -1,7 +1,7 @@
README FOR ext/tidy by John Coggeshall <john@php.net>
-Tidy Version: 0.5b
+Tidy Version: 0.7b
Tidy is an extension based on Libtidy (http://tidy.sf.net/) and allows a PHP developer
to clean, repair, and traverse HTML, XHTML, and XML documents -- including ones with
@@ -19,55 +19,55 @@ then recompile libtidy.
The Tidy extension has two separate APIs, one for general parsing, cleaning, and
repairing and another for document traversal. The general API is provided below:
- tidy_create() Initialize and return a tidy document resource
- tidy_parse_file($tidy, $file) Parse the document stored in $file
- tidy_parse_string($tidy, $str) Parse the string stored in $str
+ tidy_create() Reinitialize the tidy engine
+ tidy_parse_file($file) Parse the document stored in $file
+ tidy_parse_string($str) Parse the string stored in $str
- tidy_clean_repair($tidy) Clean and repair the document
- tidy_diagnose($tidy) Diagnose a parsed document
+ tidy_clean_repair() Clean and repair the document
+ tidy_diagnose() Diagnose a parsed document
- tidy_setopt($tidy, $opt, $val) Set a configuration option $opt to $val
- tidy_getopt($tidy, $opt) Retrieve a configuration option
+ tidy_setopt($opt, $val) Set a configuration option $opt to $val
+ tidy_getopt($opt) Retrieve a configuration option
- ** note: $opt is a string representing the option. Right now the only
- source of these options is the LibTidy source.. eventually I'll document
- them offically -- see the src/config.c file in the tidy source **
+ ** note: $opt is a string representing the option. Although no formal
+ documentation yet exists for PHP, you can find a description of many
+ of them at http://www.w3.org/People/Raggett/tidy/ and a list of supported
+ options in the phpinfo(); output**
- tidy_get_output($tidy) Return the cleaned tidy HTML as a string
- tidy_get_error_buffer($tidy) Return a log of the errors and warnings
+ tidy_get_output() Return the cleaned tidy HTML as a string
+ tidy_get_error_buffer() Return a log of the errors and warnings
returned by tidy
tidy_get_release() Return the Libtidy release date
- tidy_get_status($tidy) Return the status of the document
- tidy_get_html_ver($tidy) Return the major HTML version detected for
+ tidy_get_status() Return the status of the document
+ tidy_get_html_ver() Return the major HTML version detected for
the document;
- tidy_is_xhtml($tidy) Determines if the document is XHTML
- tidy_is_xml($tidy) Determines if the document is a generic XML
+ tidy_is_xhtml() Determines if the document is XHTML
+ tidy_is_xml() Determines if the document is a generic XML
- tidy_error_count($tidy) Returns the number of errors in the document
- tidy_warning_count($tidy) Returns the number of warnings in the document
- tidy_access_count($tidy) Returns the number of accessibility-related
+ tidy_error_count() Returns the number of errors in the document
+ tidy_warning_count() Returns the number of warnings in the document
+ tidy_access_count() Returns the number of accessibility-related
warnings in the document.
- tidy_config_count($tidy) Returns the number of configuration errors found
+ tidy_config_count() Returns the number of configuration errors found
- tidy_load_config($tidy, $file) Loads the specified configuration file
- tidY_load_config_enc($tidy,
- $file,
+ tidy_load_config($file) Loads the specified configuration file
+ tidY_load_config_enc($file,
$enc) Loads the specified config file using the specified
character encoding
- tidy_set_encoding($tidy, $enc) Sets the current character encoding for the document
- tidy_save_config($tidy, $file) Saves the current config to $file
+ tidy_set_encoding($enc) Sets the current character encoding for the document
+ tidy_save_config($file) Saves the current config to $file
Beyond these general-purpose API functions, Tidy also supports the following
functions which are used to retrieve an object for document traversal:
- tidy_get_root($tidy) Returns an object starting at the root of the
+ tidy_get_root() Returns an object starting at the root of the
document
- tidy_get_head($tidy) Returns an object starting at the <HEAD> tag
- tidy_get_html($tidy) Returns an object starting at the <HTML> tag
- tidy_get_body($tidy) Returns an object starting at the <BODY> tag
+ tidy_get_head() Returns an object starting at the <HEAD> tag
+ tidy_get_html() Returns an object starting at the <HTML> tag
+ tidy_get_body() Returns an object starting at the <BODY> tag
All Navigation of the specified document is done via the PHP5 object constructs.
There are two types of objects which Tidy can create. The first is TidyNode, which
@@ -82,18 +82,12 @@ class TidyNode {
public $type; // type of node (text, php, asp, etc.)
public $id; // id of node (i.e. TIDY_TAG_HEAD)
- public $line; // line # of node in source
- public $column; // column # of node in source
-
- public $html_ver; // HTML version (0,1,2,3,4)
-
- public $attribs; // an array of attributes (see TidyAttr)
- public $children; // an array of child nodes
+ public function attributes(); // an array of attributes (see TidyAttr)
+ public function children(); // an array of child nodes
function has_siblings(); // any sibling nodes?
function has_children(); // any child nodes?
- function has_parent(); // have a parent?
-
+
function is_comment(); // is node a comment?
function is_xhtml(); // is document XHTML?
function is_xml(); // is document generic XML (not HTML/XHTML)
@@ -106,45 +100,12 @@ class TidyNode {
function next(); // returns next node
function prev(); // returns prev node
- function parent(); // returns parent node
- function child(); // returns first child node
-
+
/* Searches for a particular attribute in the current node based
on node ID. If found returns a TidyAttr object for it */
- function get_attr_type($attr_id);
+ function get_attr($attr_id);
/*
-
- NOT YET IMPLEMENTED
-
- Recursively traverses the tree from the current node and returns
- an array of attributes matching the node ID/attr ID pair
-
- Useful for pulling out things like links:
- foreach($body->fetch_attrs(TIDY_TAG_A, TIDY_ATTR_HREF) as $link) {
- echo "Link : {$link->value}\n";
- }
- */
-
- function fetch_attrs($node_id, $attr_id);
-
- /*
-
- NOT YET IMPLEMENTED
-
- Recursively traverses the tree from the current node and returns
- an array of nodes matching the node ID
-
- Useful for pulling out tables, etc (echos the HTML for every
- <TABLE> block)
-
- foreach($body->fetch_nodes(TIDY_TAG_TABLE) as $table) {
-
- echo $table->value;
-
- }
- */
- function fetch_nodes($node_id)
}
class TidyAttr {
@@ -153,11 +114,9 @@ class TidyAttr {
public $value; // attribute value
public $id; // attribute id i.e. TIDY_ATTR_HREF
- function next(); // returns next attribute in tag
- function tag(); // returns the tag node associated with attribute
}
Examples of using these objects to navigate the tree can be found in the examples/
directory (I suggest looking at urlgrab.php and dumpit.php)
-E-mail thoughts, suggestions, patches, etc. to <john@php.net> \ No newline at end of file
+E-mail thoughts, suggestions, patches, etc. to <john@php.net>
diff --git a/ext/tidy/TODO b/ext/tidy/TODO
index f844b6ce82..699c207dcb 100644
--- a/ext/tidy/TODO
+++ b/ext/tidy/TODO
@@ -1,5 +1,3 @@
TODO
- - Implement fetch_attr(), fetch_node() methods
- - Fix any memleaks
- - Fix Win32 crashes
+ - Implement get_nodes() method
diff --git a/ext/tidy/examples/cleanhtml.php b/ext/tidy/examples/cleanhtml.php
index c949a0cfc2..9d054cda4f 100644
--- a/ext/tidy/examples/cleanhtml.php
+++ b/ext/tidy/examples/cleanhtml.php
@@ -12,26 +12,24 @@
*
*/
- $tidy = tidy_create();
-
if(!isset($_SERVER['argv'][1])) {
$data = file_get_contents("php://stdin");
- tidy_parse_string($tidy, $data);
+ tidy_parse_string($data);
} else {
- tidy_parse_file($tidy, $_SERVER['argv'][1]);
+ tidy_parse_file($_SERVER['argv'][1]);
}
- tidy_clean_repair($tidy);
+ tidy_clean_repair();
- if(tidy_warning_count($tidy) ||
- tidy_error_count($tidy)) {
+ if(tidy_warning_count() ||
+ tidy_error_count()) {
echo "\n\nThe following errors or warnings occured:\n";
- echo tidy_get_error_buffer($tidy);
+ echo tidy_get_error_buffer();
echo "\n";
}
- echo tidy_get_output($tidy);
+ echo tidy_get_output();
?>
diff --git a/ext/tidy/examples/dumpit.php b/ext/tidy/examples/dumpit.php
index 46d307d704..e0cda5e904 100644
--- a/ext/tidy/examples/dumpit.php
+++ b/ext/tidy/examples/dumpit.php
@@ -10,15 +10,13 @@
* Usage; php dumpit.php <filename>
*/
-
- $tidy = tidy_create();
- tidy_parse_file($tidy, $_SERVER['argv'][1]);
+ tidy_parse_file($_SERVER['argv'][1]);
/* Optionally you can do this here if you want to fix up the document */
- /* tidy_clean_repair($tidy); */
+ /* tidy_clean_repair(); */
- $tree = tidy_get_root($tidy);
+ $tree = tidy_get_root();
dump_tree($tree);
echo "\n";
@@ -70,12 +68,12 @@
}
/* Any attributes on this node? */
- if(count($node->attribs)) {
+ if(count($node->attributes())) {
do_leaf(" |\n", $indent);
do_leaf(" +---- Attributes\n", $indent);
/* Cycle through the attributes and display them and their values. */
- foreach($node->attribs as $attrib) {
+ foreach($node->attributes() as $attrib) {
do_leaf(" +--{$attrib->name}\n", $indent);
do_leaf(" | +-- Value: {$attrib->value}\n", $indent);
}
@@ -83,7 +81,7 @@
/* Recurse along the children to generate the remaining nodes */
if($node->has_children()) {
- foreach($node->children as $child) {
+ foreach($node->children() as $child) {
dump_tree($child, $indent + 3);
}
}
diff --git a/ext/tidy/examples/urlgrab.php b/ext/tidy/examples/urlgrab.php
index 63a2875a79..7896792ea5 100644
--- a/ext/tidy/examples/urlgrab.php
+++ b/ext/tidy/examples/urlgrab.php
@@ -11,18 +11,15 @@
* Usage: php urlgrab.php <file>
*
*/
-
- /* Create a Tidy Resource */
- $tidy = tidy_create();
-
+
/* Parse the document */
- tidy_parse_file($tidy, $_SERVER['argv'][1]);
+ tidy_parse_file($_SERVER['argv'][1]);
/* Fix up the document */
- tidy_clean_repair($tidy);
+ tidy_clean_repair();
/* Get an object representing everything from the <HTML> tag in */
- $html = tidy_get_html($tidy);
+ $html = tidy_get_html();
/* Traverse the document tree */
print_r(get_links($html));
@@ -33,7 +30,7 @@
/* Check to see if we are on an <A> tag or not */
if($node->id == TIDY_TAG_A) {
/* If we are, find the HREF attribute */
- $attrib = $node->get_attr_type(TIDY_ATTR_HREF);
+ $attrib = $node->get_attr(TIDY_ATTR_HREF);
if($attrib) {
/* Add the value of the HREF attrib to $urls */
$urls[] = $attrib->value;
@@ -45,7 +42,7 @@
if($node->has_children()) {
/* Traverse down each child recursively */
- foreach($node->children as $child) {
+ foreach($node->children() as $child) {
/* Append the results from recursion to $urls */
foreach(get_links($child) as $url) {
diff --git a/ext/tidy/php_tidy.h b/ext/tidy/php_tidy.h
index 0e077aac36..e170d37086 100644
--- a/ext/tidy/php_tidy.h
+++ b/ext/tidy/php_tidy.h
@@ -95,6 +95,33 @@ extern zend_module_entry tidy_module_entry;
obj = (PHPTidyObj *)zend_object_store_get_object(object TSRMLS_CC); \
}
+#define INSTANCIATE_NODE(_zval, _container, _node) \
+ tidy_instanciate(tidy_ce_node, _zval TSRMLS_CC); \
+ _container = (PHPTidyObj *) zend_object_store_get_object(_zval TSRMLS_CC); \
+ _container->node = _node; \
+ _container->attr = NULL; \
+ _container->type = is_node; \
+ tidy_add_default_properities(_container, is_node TSRMLS_CC);
+
+#define INSTANCIATE_ATTR(_zval, _container, _attr) \
+ tidy_instanciate(tidy_ce_attr, _zval TSRMLS_CC); \
+ _container = (PHPTidyObj *) zend_object_store_get_object(_zval TSRMLS_CC); \
+ _container->node = NULL; \
+ _container->attr = _attr; \
+ _container->type = is_attr; \
+ tidy_add_default_properities(_container, is_attr TSRMLS_CC);
+
+#define PHP_NODE_METHOD_IS_TYPE(_type, _const) \
+PHP_NODE_METHOD(is_ ##_type) \
+{ \
+ GET_THIS_CONTAINER(); \
+ if(tidyNodeGetType(obj->node) == _const) {\
+ RETURN_TRUE; \
+ } else { \
+ RETURN_FALSE; \
+ } \
+}
+
typedef enum {
is_node,
is_attr
diff --git a/ext/tidy/tests/002.phpt b/ext/tidy/tests/002.phpt
index b28b28410a..83456091f7 100644
--- a/ext/tidy/tests/002.phpt
+++ b/ext/tidy/tests/002.phpt
@@ -7,12 +7,9 @@ tidy_parse_string()
--INI--
--FILE--
<?php
-
- $tidy = tidy_create();
-
- tidy_parse_string($tidy, "<HTML></HTML>");
+ tidy_parse_string("<HTML></HTML>");
- echo tidy_get_output($tidy);
+ echo tidy_get_output();
?>
--EXPECT--
diff --git a/ext/tidy/tests/003.phpt b/ext/tidy/tests/003.phpt
index 289198c538..b008acecdb 100644
--- a/ext/tidy/tests/003.phpt
+++ b/ext/tidy/tests/003.phpt
@@ -8,12 +8,10 @@ tidy_clean_repair()
--FILE--
<?php
- $tidy = tidy_create();
-
- tidy_parse_string($tidy, "<HTML></HTML>");
- tidy_clean_repair($tidy);
+ tidy_parse_string("<HTML></HTML>");
+ tidy_clean_repair();
- echo tidy_get_output($tidy);
+ echo tidy_get_output();
?>
--EXPECT--
diff --git a/ext/tidy/tests/004.phpt b/ext/tidy/tests/004.phpt
index 299c191dc6..ed60a39b27 100644
--- a/ext/tidy/tests/004.phpt
+++ b/ext/tidy/tests/004.phpt
@@ -7,12 +7,9 @@ tidy_diagnose()
--INI--
--FILE--
<?php
-
- $tidy = tidy_create();
-
- tidy_parse_string($tidy, "<HTML></HTML>");
- tidy_diagnose($tidy);
- echo tidy_get_error_buffer($tidy);
+ tidy_parse_string("<HTML></HTML>");
+ tidy_diagnose();
+ echo tidy_get_error_buffer();
?>
--EXPECT--
diff --git a/ext/tidy/tests/005.phpt b/ext/tidy/tests/005.phpt
index c1ee50713c..d69a726c8f 100644
--- a/ext/tidy/tests/005.phpt
+++ b/ext/tidy/tests/005.phpt
@@ -8,11 +8,9 @@ tidy_parse_file()
--FILE--
<?php
- $tidy = tidy_create();
+ tidy_parse_file("ext/tidy/tests/005.html");
- tidy_parse_file($tidy, "ext/tidy/tests/005.html");
-
- echo tidy_get_output($tidy);
+ echo tidy_get_output();
?>
--EXPECT--
diff --git a/ext/tidy/tests/006.phpt b/ext/tidy/tests/006.phpt
index 37f3ebb899..7ea28e79c5 100644
--- a/ext/tidy/tests/006.phpt
+++ b/ext/tidy/tests/006.phpt
@@ -8,11 +8,9 @@ Verbose tidy_get_error_buffer()
--FILE--
<?php
- $tidy = tidy_create();
+ tidy_parse_string("<HTML><asd asdf></HTML>");
- tidy_parse_string($tidy, "<HTML><asd asdf></HTML>");
-
- echo tidy_get_error_buffer($tidy, true);
+ echo tidy_get_error_buffer(true);
?>
--EXPECT--
diff --git a/ext/tidy/tests/007.phpt b/ext/tidy/tests/007.phpt
index f81853a29e..9987677df6 100644
--- a/ext/tidy/tests/007.phpt
+++ b/ext/tidy/tests/007.phpt
@@ -7,23 +7,22 @@ Verbose tidy_setopt() / tidy_getopt()
--INI--
--FILE--
<?php
-
- $tidy = tidy_create();
+
echo "Current Value of 'tidy-mark': ";
- var_dump(tidy_getopt($tidy, "tidy-mark"));
+ var_dump(tidy_getopt("tidy-mark"));
tidy_setopt($tidy, "tidy-mark", true);
echo "\nNew Value of 'tidy-mark': ";
- var_dump(tidy_getopt($tidy, "tidy-mark"));
+ var_dump(tidy_getopt("tidy-mark"));
echo "Current Value of 'error-file': ";
- var_dump(tidy_getopt($tidy, "error-file"));
+ var_dump(tidy_getopt("error-file"));
tidy_setopt($tidy, "error-file", "foobar");
echo "\nNew Value of 'error-file': ";
- var_dump(tidy_getopt($tidy, "error-file"));
+ var_dump(tidy_getopt("error-file"));
echo "Current Value of 'tab-size': ";
- var_dump(tidy_getopt($tidy, "tab-size"));
+ var_dump(tidy_getopt("tab-size"));
tidy_setopt($tidy, "tab-size", 10);
echo "\nNew Value of 'tab-size': ";
- var_dump(tidy_getopt($tidy, "tab-size"));
+ var_dump(tidy_getopt("tab-size"));
?>
--EXPECT--
Current Value of 'tidy-mark': bool(false)
diff --git a/ext/tidy/tidy.c b/ext/tidy/tidy.c
index c9563b5201..22111d8b72 100644
--- a/ext/tidy/tidy.c
+++ b/ext/tidy/tidy.c
@@ -238,7 +238,7 @@ static char *php_tidy_file_to_mem(char *filename, zend_bool use_include_path TSR
return data;
}
-static void php_tidy_quick_repair(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_file)
+static void php_tidy_quick_repair(INTERNAL_FUNCTION_PARAMETERS, zend_bool is_file TSRMLS_DC)
{
char *data=NULL, *cfg_file=NULL, *arg1;
int cfg_file_len, arg1_len;
@@ -296,9 +296,10 @@ PHP_MINIT_FUNCTION(tidy)
REGISTER_TIDY_CLASS(node, NULL);
REGISTER_TIDY_CLASS(attr, NULL);
REGISTER_TIDY_CLASS(exception, zend_exception_get_default());
-#endif
+
tidy_object_handlers_node.get_class_entry = tidy_get_ce_node;
tidy_object_handlers_attr.get_class_entry = tidy_get_ce_attr;
+#endif
_php_tidy_register_tags(INIT_FUNC_ARGS_PASSTHRU);
_php_tidy_register_attributes(INIT_FUNC_ARGS_PASSTHRU);
@@ -485,7 +486,7 @@ PHP_FUNCTION(tidy_clean_repair)
Repair a string using an optionally provided configuration file */
PHP_FUNCTION(tidy_repair_string)
{
- php_tidy_quick_repair(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
+ php_tidy_quick_repair(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0 TSRMLS_CC);
}
/* }}} */
@@ -1085,7 +1086,6 @@ PHP_FUNCTION(tidy_get_body)
tidy_add_default_properities(obj, is_node TSRMLS_CC);
}
/* }}} */
-#endif
/* {{{ proto void tidy_node::tidy_node()
Constructor. */
@@ -1104,40 +1104,23 @@ PHP_NODE_METHOD(attributes)
GET_THIS_CONTAINER();
tempattr = tidyAttrFirst(obj->node);
- array_init(return_value);
-
+
if(tempattr) {
+ array_init(return_value);
- MAKE_STD_ZVAL(object);
- tidy_instanciate(tidy_ce_node, object TSRMLS_CC);
-
- objtemp = (PHPTidyObj *) zend_object_store_get_object(object TSRMLS_CC);
- objtemp->node = NULL;
- objtemp->attr = tempattr;
- objtemp->type = is_attr;
-
- tidy_add_default_properities(objtemp, is_attr TSRMLS_CC);
-
- add_next_index_zval(return_value, object);
- object=NULL;
-
- while((tempattr = tidyAttrNext(tempattr))) {
- MAKE_STD_ZVAL(object);
- tidy_instanciate(tidy_ce_node, object TSRMLS_CC);
- objtemp = (PHPTidyObj *) zend_object_store_get_object(object TSRMLS_CC);
- objtemp->node = NULL;
- objtemp->attr = tempattr;
- objtemp->type = is_attr;
-
- tidy_add_default_properities(objtemp, is_attr TSRMLS_CC);
-
+ do {
+
+ MAKE_STD_ZVAL(object);
+ INSTANCIATE_ATTR(object, objtemp, tempattr);
add_next_index_zval(return_value, object);
- object=NULL;
- }
+
+ } while((tempattr = tidyAttrNext(tempattr)));
}
}
/* }}} */
+
+
/* {{{ proto tidy_node tidy_node::children()
Returns an array of child nodes */
PHP_NODE_METHOD(children)
@@ -1148,36 +1131,16 @@ PHP_NODE_METHOD(children)
GET_THIS_CONTAINER();
tempnode = tidyGetChild(obj->node);
- array_init(return_value);
-
+
if(tempnode) {
+ array_init(return_value);
+ do {
- MAKE_STD_ZVAL(object);
- tidy_instanciate(tidy_ce_node, object TSRMLS_CC);
-
- objtemp = (PHPTidyObj *) zend_object_store_get_object(object TSRMLS_CC);
- objtemp->node = tempnode;
- objtemp->attr = NULL;
- objtemp->type = is_node;
-
- tidy_add_default_properities(objtemp, is_node TSRMLS_CC);
-
- add_next_index_zval(return_value, object);
- object=NULL;
-
- while((tempnode = tidyGetNext(tempnode))) {
- MAKE_STD_ZVAL(object);
- tidy_instanciate(tidy_ce_node, object TSRMLS_CC);
- objtemp = (PHPTidyObj *) zend_object_store_get_object(object TSRMLS_CC);
- objtemp->node = tempnode;
- objtemp->attr = NULL;
- objtemp->type = is_node;
-
- tidy_add_default_properities(objtemp, is_node TSRMLS_CC);
-
+ MAKE_STD_ZVAL(object);
+ INSTANCIATE_NODE(object, objtemp, tempnode);
add_next_index_zval(return_value, object);
- object=NULL;
- }
+
+ } while((tempnode = tidyGetNext(tempnode)));
}
}
/* }}} */
@@ -1231,16 +1194,12 @@ PHP_NODE_METHOD(is_comment)
PHP_NODE_METHOD(is_html)
{
GET_THIS_CONTAINER();
- switch(tidyNodeGetType(obj->node)) {
- case TidyNode_Start:
- case TidyNode_End:
- case TidyNode_StartEnd:
- RETURN_TRUE;
- break;
- default:
- RETURN_FALSE;
- break;
+
+ if(tidyNodeGetType(obj->node) & (TidyNode_Start | TidyNode_End | TidyNode_StartEnd)) {
+ RETURN_TRUE;
}
+ RETURN_FALSE;
+
}
/* }}} */
@@ -1269,7 +1228,7 @@ PHP_NODE_METHOD(is_xml)
}
}
/* }}} */
-
+
/* {{{ proto boolean tidy_node::is_text()
Returns true if this node represents text (no markup) */
PHP_NODE_METHOD(is_text)
@@ -1296,7 +1255,7 @@ PHP_NODE_METHOD(is_jste)
}
}
/* }}} */
-
+
/* {{{ proto boolean tidy_node::is_asp()
Returns true if this node is ASP */
PHP_NODE_METHOD(is_asp)
@@ -1372,7 +1331,7 @@ PHP_NODE_METHOD(prev)
PHP_NODE_METHOD(get_attr)
{
TidyAttr tempattr;
- int param;
+ long param;
GET_THIS_CONTAINER();
if(ZEND_NUM_ARGS() != 1) {
@@ -1385,11 +1344,8 @@ PHP_NODE_METHOD(get_attr)
RETURN_FALSE;
}
- for(tempattr = tidyAttrFirst(obj->node);
- tempattr;
- tempattr = tidyAttrNext(tempattr)) {
+ for(tempattr = tidyAttrFirst(obj->node); tempattr; tempattr = tidyAttrNext(tempattr)) {
- fprintf(stderr, "Comparing %d with %d\n", tidyAttrGetId(tempattr), param);
if(tidyAttrGetId(tempattr) == param) {
tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC);
@@ -1413,6 +1369,8 @@ PHP_NODE_METHOD(get_nodes)
/* TODO */
}
/* }}} */
+
+#endif /* ZEND_ENGINE_2 */
void _php_tidy_register_nodetypes(INIT_FUNC_ARGS)
{