|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2006-04-03 13:27 UTC] tony2001@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 22:00:02 2025 UTC |
Description: ------------ The tidy library provides the getParent function which is currently not exposed to PHP. This patch enabled the getParent method: Index: php_tidy.h =================================================================== RCS file: /repository/php-src/ext/tidy/php_tidy.h,v retrieving revision 1.25 diff -u -r1.25 php_tidy.h --- php_tidy.h 25 Apr 2005 20:46:16 -0000 1.25 +++ php_tidy.h 15 Jul 2005 09:59:44 -0000 @@ -89,6 +89,7 @@ TIDY_NODE_METHOD(isJste); TIDY_NODE_METHOD(isAsp); TIDY_NODE_METHOD(isPhp); +TIDY_NODE_METHOD(getParent); ZEND_BEGIN_MODULE_GLOBALS(tidy) char *default_config; Index: tidy.c =================================================================== RCS file: /repository/php-src/ext/tidy/tidy.c,v retrieving revision 1.65 diff -u -r1.65 tidy.c --- tidy.c 25 Apr 2005 20:46:16 -0000 1.65 +++ tidy.c 15 Jul 2005 09:59:45 -0000 @@ -291,6 +291,7 @@ TIDY_NODE_ME(isJste, NULL) TIDY_NODE_ME(isAsp, NULL) TIDY_NODE_ME(isPhp, NULL) + TIDY_NODE_ME(getParent, NULL) {NULL, NULL, NULL} }; @@ -1668,6 +1669,30 @@ } /* }}} */ +/* {{{ proto boolean tidyNode::getParent() + Returns the parent node if available or NULL */ +TIDY_NODE_METHOD(getParent) +{ + TidyNode parent_node; + PHPTidyObj *newobj; + TIDY_FETCH_ONLY_OBJECT; + + parent_node = tidyGetParent(obj->node); + if(parent_node) { + tidy_instanciate(tidy_ce_node, return_value TSRMLS_CC); + newobj = (PHPTidyObj *) zend_object_store_get_object(return_value TSRMLS_CC); + newobj->node = parent_node; + newobj->type = is_node; + newobj->ptdoc = obj->ptdoc; + newobj->ptdoc->ref_count++; + tidy_add_default_properties(newobj, is_node TSRMLS_CC); + } else { + ZVAL_NULL(return_value); + } +} +/* }}} */ + + static void _php_tidy_register_nodetypes(INIT_FUNC_ARGS) { TIDY_NODE_CONST(ROOT, Root); I've been running this patch on a nearly daily basis in a web crawling application for a few thousands documents each run and saw no problems.