rrichards Mon Oct 20 11:50:35 2003 EDT Modified files: /php-src/ext/dom xpath.c php_dom.c node.c element.c dom_ce.h document.c Log: implement namespace nodes fix getElementsByTagName fixes to attribute namespaces remove safemode stuff as its handled in streams
Index: php-src/ext/dom/xpath.c diff -u php-src/ext/dom/xpath.c:1.7 php-src/ext/dom/xpath.c:1.8 --- php-src/ext/dom/xpath.c:1.7 Sun Oct 5 12:37:50 2003 +++ php-src/ext/dom/xpath.c Mon Oct 20 11:50:34 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: xpath.c,v 1.7 2003/10/05 16:37:50 shane Exp $ */ +/* $Id: xpath.c,v 1.8 2003/10/20 15:50:34 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -214,8 +214,27 @@ for (i = 0; i < nodesetp->nodeNr; i++) { xmlNodePtr node = nodesetp->nodeTab[i]; zval *child; - MAKE_STD_ZVAL(child); + MAKE_STD_ZVAL(child); + + if (node->type == XML_NAMESPACE_DECL) { + xmlNsPtr curns; + xmlNodePtr nsparent; + + nsparent = node->_private; + curns = xmlNewNs(NULL, node->name, NULL); + if (node->children) { + curns->prefix = xmlStrdup((char *) node->children); + } + if (node->children) { + node = xmlNewDocNode(docp, NULL, (char *) node->children, node->name); + } else { + node = xmlNewDocNode(docp, NULL, "xmlns", node->name); + } + node->type = XML_NAMESPACE_DECL; + node->parent = nsparent; + node->ns = curns; + } child = php_dom_create_object(node, &ret, NULL, child, intern TSRMLS_CC); add_next_index_zval(return_value, child); } Index: php-src/ext/dom/php_dom.c diff -u php-src/ext/dom/php_dom.c:1.37 php-src/ext/dom/php_dom.c:1.38 --- php-src/ext/dom/php_dom.c:1.37 Sun Oct 19 19:17:54 2003 +++ php-src/ext/dom/php_dom.c Mon Oct 20 11:50:34 2003 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_dom.c,v 1.37 2003/10/19 23:17:54 shane Exp $ */ +/* $Id: php_dom.c,v 1.38 2003/10/20 15:50:34 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -58,6 +58,7 @@ static HashTable dom_notation_prop_handlers; static HashTable dom_entity_prop_handlers; static HashTable dom_processinginstruction_prop_handlers; +static HashTable dom_namespace_node_prop_handlers; #if defined(LIBXML_XPATH_ENABLED) static HashTable dom_xpath_prop_handlers; #endif @@ -485,6 +486,19 @@ dom_register_prop_handler(&dom_node_prop_handlers, "textContent", dom_node_text_content_read, dom_node_text_content_write TSRMLS_CC); zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_node_prop_handlers, sizeof(dom_node_prop_handlers), NULL); + REGISTER_DOM_CLASS(ce, "domnamespacenode", NULL, NULL, dom_namespace_node_class_entry); + + zend_hash_init(&dom_namespace_node_prop_handlers, 0, NULL, NULL, 1); + dom_register_prop_handler(&dom_namespace_node_prop_handlers, "nodeName", dom_node_node_name_read, NULL TSRMLS_CC); + dom_register_prop_handler(&dom_namespace_node_prop_handlers, "nodeValue", dom_node_node_value_read, NULL TSRMLS_CC); + dom_register_prop_handler(&dom_namespace_node_prop_handlers, "nodeType", dom_node_node_type_read, NULL TSRMLS_CC); + dom_register_prop_handler(&dom_namespace_node_prop_handlers, "prefix", dom_node_prefix_read, NULL TSRMLS_CC); + dom_register_prop_handler(&dom_namespace_node_prop_handlers, "localName", dom_node_local_name_read, NULL TSRMLS_CC); + dom_register_prop_handler(&dom_namespace_node_prop_handlers, "namespaceURI", dom_node_namespace_uri_read, NULL TSRMLS_CC); + dom_register_prop_handler(&dom_namespace_node_prop_handlers, "ownerDocument", dom_node_owner_document_read, NULL TSRMLS_CC); + dom_register_prop_handler(&dom_namespace_node_prop_handlers, "parentNode", dom_node_parent_node_read, NULL TSRMLS_CC); + zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_namespace_node_prop_handlers, sizeof(dom_namespace_node_prop_handlers), NULL); + REGISTER_DOM_CLASS(ce, "domdocumentfragment", dom_node_class_entry, php_dom_documentfragment_class_functions, dom_documentfragment_class_entry); zend_hash_add(&classes, ce.name, ce.name_length + 1, &dom_node_prop_handlers, sizeof(dom_node_prop_handlers), NULL); @@ -742,6 +756,7 @@ zend_hash_destroy(&dom_domimplementationlist_prop_handlers); zend_hash_destroy(&dom_document_prop_handlers); zend_hash_destroy(&dom_node_prop_handlers); + zend_hash_destroy(&dom_namespace_node_prop_handlers); zend_hash_destroy(&dom_nodelist_prop_handlers); zend_hash_destroy(&dom_namednodemap_prop_handlers); zend_hash_destroy(&dom_characterdata_prop_handlers); @@ -815,8 +830,6 @@ case XML_ENTITY_DECL: case XML_ELEMENT_DECL: case XML_ATTRIBUTE_DECL: - case XML_NAMESPACE_DECL: - /* These can never stand alone */ break; case XML_NOTATION_NODE: /* These require special handling */ @@ -831,6 +844,12 @@ } xmlFree(node); break; + case XML_NAMESPACE_DECL: + if (node->ns) { + xmlFreeNs(node->ns); + node->ns = NULL; + } + node->type = XML_ELEMENT_NODE; default: xmlFreeNode(node); } @@ -859,6 +878,7 @@ case XML_DOCUMENT_TYPE_NODE: case XML_ENTITY_DECL: case XML_ATTRIBUTE_NODE: + case XML_NAMESPACE_DECL: node_free_list(node->children TSRMLS_CC); break; default: @@ -889,7 +909,7 @@ case XML_HTML_DOCUMENT_NODE: break; default: - if (node->parent == NULL) { + if (node->parent == NULL || node->type == XML_NAMESPACE_DECL) { node_free_list((xmlNodePtr) node->children TSRMLS_CC); switch (node->type) { /* Skip property freeing for the following types */ @@ -898,6 +918,7 @@ case XML_DOCUMENT_TYPE_NODE: case XML_ENTITY_DECL: case XML_ATTRIBUTE_NODE: + case XML_NAMESPACE_DECL: break; default: node_free_list((xmlNodePtr) node->properties TSRMLS_CC); @@ -1118,6 +1139,11 @@ ce = dom_notation_class_entry; break; } + case XML_NAMESPACE_DECL: + { + ce = dom_namespace_node_class_entry; + break; + } default: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Unsupported node type: %d\n", Z_TYPE_P(obj)); ZVAL_NULL(wrapper); @@ -1183,17 +1209,13 @@ /* {{{ void dom_element_get_elements_by_tag_name_ns_raw(xmlNodePtr nodep, char *ns, char *local, zval **retval TSRMLS_DC) */ void dom_get_elements_by_tag_name_ns_raw(xmlNodePtr nodep, char *ns, char *local, zval **retval, dom_object *intern TSRMLS_DC) { - dom_object *wrapper; int ret; while (nodep != NULL) { if (nodep->type == XML_ELEMENT_NODE && xmlStrEqual(nodep->name, local)) { if (ns == NULL || (nodep->ns != NULL && xmlStrEqual(nodep->ns->href, ns))) { - zval *child = NULL; - wrapper = dom_object_get_data(nodep); - if (wrapper == NULL) { - MAKE_STD_ZVAL(child); - } + zval *child; + MAKE_STD_ZVAL(child); child = php_dom_create_object(nodep, &ret, NULL, child, intern TSRMLS_CC); add_next_index_zval(*retval, child); @@ -1328,7 +1350,7 @@ if (localName == NULL || xmlStrEqual(localName, "")) { cur = node->nsDef; while (cur != NULL) { - if (cur->prefix == NULL) { + if (cur->prefix == NULL && cur->href != NULL) { ret = cur; break; } Index: php-src/ext/dom/node.c diff -u php-src/ext/dom/node.c:1.13 php-src/ext/dom/node.c:1.14 --- php-src/ext/dom/node.c:1.13 Sun Oct 5 17:53:08 2003 +++ php-src/ext/dom/node.c Mon Oct 20 11:50:34 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: node.c,v 1.13 2003/10/05 21:53:08 shane Exp $ */ +/* $Id: node.c,v 1.14 2003/10/20 15:50:34 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -84,6 +84,17 @@ str = (char *) nodep->name; } break; + case XML_NAMESPACE_DECL: + ns = nodep->ns; + if (ns != NULL && ns->prefix) { + qname = xmlStrdup("xmlns"); + qname = xmlStrcat(qname, ":"); + qname = xmlStrcat(qname, nodep->name); + str = qname; + } else { + str = (char *) nodep->name; + } + break; case XML_DOCUMENT_TYPE_NODE: case XML_DTD_NODE: case XML_PI_NODE: @@ -108,11 +119,6 @@ case XML_TEXT_NODE: str = "#text"; break; - case XML_NAMESPACE_DECL: - if (nodep->ns != NULL) { - str = (char *) nodep->ns->prefix; - } - break; default: php_error_docref(NULL TSRMLS_CC, E_WARNING, "Invalid Node Type"); return FAILURE; @@ -160,6 +166,9 @@ case XML_PI_NODE: str = xmlNodeGetContent(nodep); break; + case XML_NAMESPACE_DECL: + str = xmlNodeGetContent(nodep->children); + break; default: str = NULL; break; @@ -519,6 +528,7 @@ switch (nodep->type) { case XML_ELEMENT_NODE: case XML_ATTRIBUTE_NODE: + case XML_NAMESPACE_DECL: if (nodep->ns != NULL) { str = (char *) nodep->ns->href; } @@ -559,6 +569,7 @@ switch (nodep->type) { case XML_ELEMENT_NODE: case XML_ATTRIBUTE_NODE: + case XML_NAMESPACE_DECL: ns = nodep->ns; if (ns != NULL && ns->prefix) { str = (char *) ns->prefix; @@ -650,7 +661,7 @@ ALLOC_ZVAL(*retval); - if (nodep->type == XML_ELEMENT_NODE || nodep->type == XML_ATTRIBUTE_NODE) { + if (nodep->type == XML_ELEMENT_NODE || nodep->type == XML_ATTRIBUTE_NODE || nodep->type == XML_NAMESPACE_DECL) { ZVAL_STRING(*retval, (char *) (nodep->name), 1); } else { ZVAL_NULL(*retval); Index: php-src/ext/dom/element.c diff -u php-src/ext/dom/element.c:1.17 php-src/ext/dom/element.c:1.18 --- php-src/ext/dom/element.c:1.17 Mon Oct 6 17:28:01 2003 +++ php-src/ext/dom/element.c Mon Oct 20 11:50:34 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: element.c,v 1.17 2003/10/06 21:28:01 rrichards Exp $ */ +/* $Id: element.c,v 1.18 2003/10/20 15:50:34 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -392,60 +392,21 @@ PHP_FUNCTION(dom_element_get_elements_by_tag_name) { zval *id; - xmlXPathContextPtr ctxp; - xmlNodePtr nodep; - xmlDocPtr docp; - xmlXPathObjectPtr xpathobjp; - int name_len, ret; + xmlNodePtr elemp; + int name_len; dom_object *intern; - char *str,*name; + char *name; - DOM_GET_THIS_OBJ(nodep, id, xmlNodePtr, intern); + DOM_GET_THIS_OBJ(elemp, id, xmlNodePtr, intern); if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &name, &name_len) == FAILURE) { return; } - docp = nodep->doc; - - ctxp = xmlXPathNewContext(docp); - - ctxp->node = nodep; - str = (char*) safe_emalloc((name_len+13), sizeof(char), 0) ; - sprintf(str ,"descendant::%s",name); - - xpathobjp = xmlXPathEval(str, ctxp); - efree(str); - ctxp->node = NULL; - - if (!xpathobjp) { - RETURN_FALSE; - } - - if (xpathobjp->type == XPATH_NODESET) { - int i; - xmlNodeSetPtr nodesetp; - - if (NULL == (nodesetp = xpathobjp->nodesetval)) { - xmlXPathFreeObject (xpathobjp); - xmlXPathFreeContext(ctxp); - RETURN_FALSE; - } - - array_init(return_value); - - for (i = 0; i < nodesetp->nodeNr; i++) { - xmlNodePtr node = nodesetp->nodeTab[i]; - zval *child; - MAKE_STD_ZVAL(child); - - child = php_dom_create_object(node, &ret, NULL, child, intern TSRMLS_CC); - add_next_index_zval(return_value, child); - } - } + array_init(return_value); + elemp = elemp->children; - xmlXPathFreeObject(xpathobjp); - xmlXPathFreeContext(ctxp); + dom_get_elements_by_tag_name_ns_raw(elemp, NULL, name, &return_value, intern TSRMLS_CC); } /* }}} end dom_element_get_elements_by_tag_name */ @@ -496,15 +457,15 @@ */ PHP_FUNCTION(dom_element_set_attribute_ns) { - zval *id, *rv = NULL; + zval *id; xmlNodePtr elemp, nodep = NULL; xmlNsPtr nsptr; xmlAttr *attr; - int ret, uri_len = 0, name_len = 0, value_len = 0; + int uri_len = 0, name_len = 0, value_len = 0; char *uri, *name, *value; char *localname = NULL, *prefix = NULL; dom_object *intern; - int errorcode = 0, stricterror; + int errorcode = 0, stricterror, is_xmlns = 0; DOM_GET_THIS_OBJ(elemp, id, xmlNodePtr, intern); @@ -516,7 +477,7 @@ if (dom_node_is_read_only(elemp) == SUCCESS) { php_dom_throw_error(NO_MODIFICATION_ALLOWED_ERR, stricterror TSRMLS_CC); - RETURN_FALSE; + RETURN_NULL(); } errorcode = dom_check_qname(name, &localname, &prefix, uri_len, name_len); @@ -527,19 +488,37 @@ if (nodep != NULL) { node_list_unlink(nodep->children TSRMLS_CC); } - nsptr = xmlSearchNsByHref(elemp->doc, elemp, uri); - while (nsptr && nsptr->prefix == NULL) { - nsptr = nsptr->next; + + if (xmlStrEqual(prefix,"xmlns") && xmlStrEqual(uri, DOM_XMLNS_NAMESPACE)) { + is_xmlns = 1; + nsptr = dom_get_nsdecl(elemp, localname); + } else { + nsptr = xmlSearchNsByHref(elemp->doc, elemp, uri); + while (nsptr && nsptr->prefix == NULL) { + nsptr = nsptr->next; + } } + if (nsptr == NULL) { if (prefix == NULL) { errorcode = NAMESPACE_ERR; } else { - nsptr = dom_get_ns(elemp, uri, &errorcode, prefix); + if (is_xmlns == 1) { + xmlNewNs(elemp, value, localname); + } else { + nsptr = dom_get_ns(elemp, uri, &errorcode, prefix); + } + } + } else { + if (is_xmlns == 1) { + if (nsptr->href) { + xmlFree((xmlChar *) nsptr->href); + } + nsptr->href = xmlStrdup(value); } } - if (errorcode == 0) { + if (errorcode == 0 && is_xmlns == 0) { attr = xmlSetNsProp(elemp, nsptr, localname, value); } } else { @@ -558,14 +537,9 @@ if (errorcode != 0) { php_dom_throw_error(errorcode, stricterror TSRMLS_CC); - RETURN_FALSE; - } - - if (nodep == NULL) { - RETURN_FALSE; } - DOM_RET_OBJ(rv, nodep, &ret, intern); + RETURN_NULL(); } /* }}} end dom_element_set_attribute_ns */ @@ -579,6 +553,7 @@ zval *id; xmlNode *nodep; xmlAttr *attrp; + xmlNsPtr nsptr; dom_object *intern; int name_len, uri_len; char *name, *uri; @@ -591,17 +566,28 @@ if (dom_node_is_read_only(nodep) == SUCCESS) { php_dom_throw_error(NO_MODIFICATION_ALLOWED_ERR, dom_get_strict_error(intern->document) TSRMLS_CC); - RETURN_FALSE; + RETURN_NULL(); } - if (xmlStrEqual(uri, DOM_XMLNS_NAMESPACE)) { - DOM_NOT_IMPLEMENTED(); - } else { - attrp = xmlHasNsProp(nodep, name, uri); - if (attrp == NULL) { - RETURN_FALSE; + attrp = xmlHasNsProp(nodep, name, uri); + + nsptr = dom_get_nsdecl(nodep, name); + if (nsptr != NULL) { + if (xmlStrEqual(uri, nsptr->href)) { + if (nsptr->href != NULL) { + xmlFree((char *) nsptr->href); + nsptr->href = NULL; + } + if (nsptr->prefix != NULL) { + xmlFree((char *) nsptr->prefix); + nsptr->prefix = NULL; + } + } else { + RETURN_NULL(); } + } + if (attrp) { if (dom_object_get_data((xmlNodePtr) attrp) == NULL) { node_list_unlink(attrp->children TSRMLS_CC); xmlUnlinkNode((xmlNodePtr) attrp); @@ -611,7 +597,7 @@ } } - RETURN_TRUE; + RETURN_NULL(); } /* }}} end dom_element_remove_attribute_ns */ @@ -622,12 +608,12 @@ */ PHP_FUNCTION(dom_element_get_attribute_node_ns) { - zval *id; + zval *id, *rv = NULL; xmlNodePtr elemp; - xmlNs *nsp; + xmlAttrPtr attrp; dom_object *intern; - int uri_len, name_len; - char *uri, *name, *value; + int uri_len, name_len, ret; + char *uri, *name; DOM_GET_THIS_OBJ(elemp, id, xmlNodePtr, intern); @@ -635,23 +621,13 @@ return; } - value = xmlGetNsProp(elemp, name, uri); + attrp = xmlHasNsProp(elemp, name, uri); - if (value != NULL) { - RETVAL_STRING(value, 1); - xmlFree(value); - } else { - if (xmlStrEqual(name, DOM_XMLNS_NAMESPACE)) { - nsp = dom_get_nsdecl(elemp, name); - if (nsp != NULL) { - RETVAL_STRING((char *) nsp->href, 1); - } else { - RETVAL_EMPTY_STRING(); - } - } else { - RETVAL_EMPTY_STRING(); - } + if (attrp == NULL) { + RETURN_NULL(); } + + DOM_RET_OBJ(rv, (xmlNodePtr) attrp, &ret, intern); } /* }}} end dom_element_get_attribute_node_ns */ Index: php-src/ext/dom/dom_ce.h diff -u php-src/ext/dom/dom_ce.h:1.3 php-src/ext/dom/dom_ce.h:1.4 --- php-src/ext/dom/dom_ce.h:1.3 Thu Jul 24 09:18:40 2003 +++ php-src/ext/dom/dom_ce.h Mon Oct 20 11:50:34 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: dom_ce.h,v 1.3 2003/07/24 13:18:40 rrichards Exp $ */ +/* $Id: dom_ce.h,v 1.4 2003/10/20 15:50:34 rrichards Exp $ */ #ifndef DOM_CE_H #define DOM_CE_H @@ -53,5 +53,6 @@ #if defined(LIBXML_XPATH_ENABLED) zend_class_entry *dom_xpath_class_entry; #endif +zend_class_entry *dom_namespace_node_class_entry; #endif /* DOM_CE_H */ Index: php-src/ext/dom/document.c diff -u php-src/ext/dom/document.c:1.30 php-src/ext/dom/document.c:1.31 --- php-src/ext/dom/document.c:1.30 Mon Oct 6 17:28:01 2003 +++ php-src/ext/dom/document.c Mon Oct 20 11:50:34 2003 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: document.c,v 1.30 2003/10/06 21:28:01 rrichards Exp $ */ +/* $Id: document.c,v 1.31 2003/10/20 15:50:34 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -852,13 +852,11 @@ PHP_FUNCTION(dom_document_get_elements_by_tag_name) { zval *id; - xmlXPathContextPtr ctxp; xmlDocPtr docp; - xmlXPathObjectPtr xpathobjp; + xmlNodePtr elemp; + int name_len; dom_object *intern; - - int name_len, ret; - char *str,*name; + char *name; DOM_GET_THIS_OBJ(docp, id, xmlDocPtr, intern); @@ -866,44 +864,10 @@ return; } - ctxp = xmlXPathNewContext(docp); - - ctxp->node = NULL; - str = (char*) safe_emalloc((name_len+3), sizeof(char), 0) ; - sprintf(str ,"//%s",name); - - xpathobjp = xmlXPathEval(str, ctxp); - efree(str); - ctxp->node = NULL; - - if (!xpathobjp) { - RETURN_FALSE; - } - - if (xpathobjp->type == XPATH_NODESET) { - int i; - xmlNodeSetPtr nodesetp; - - if (NULL == (nodesetp = xpathobjp->nodesetval)) { - xmlXPathFreeObject (xpathobjp); - xmlXPathFreeContext(ctxp); - RETURN_FALSE; - } - - array_init(return_value); - - for (i = 0; i < nodesetp->nodeNr; i++) { - xmlNodePtr node = nodesetp->nodeTab[i]; - zval *child; - MAKE_STD_ZVAL(child); - - child = php_dom_create_object(node, &ret, NULL, child, intern TSRMLS_CC); - add_next_index_zval(return_value, child); - } - } + array_init(return_value); + elemp = xmlDocGetRootElement(docp); - xmlXPathFreeObject(xpathobjp); - xmlXPathFreeContext(ctxp); + dom_get_elements_by_tag_name_ns_raw(elemp, NULL, name, &return_value, intern TSRMLS_CC); } /* }}} end dom_document_get_elements_by_tag_name */ @@ -1256,11 +1220,7 @@ xmlFreeURI(uri); - if ((PG(safe_mode) && (!php_checkuid(file_dest, NULL, CHECKUID_CHECK_FILE_AND_DIR))) || php_check_open_basedir(file_dest TSRMLS_CC)) { - return NULL; - } else { - return file_dest; - } + return file_dest; } @@ -1299,11 +1259,16 @@ if (file_dest) { ctxt = xmlCreateFileParserCtxt(file_dest); } + } else { ctxt = xmlCreateDocParserCtxt(source); } xmlKeepBlanksDefault(keep_blanks); + /* xmlIndentTreeOutput default is changed in xmlKeepBlanksDefault + reset back to 1 which is default value */ + + xmlIndentTreeOutput = 1; if (ctxt == NULL) { return(NULL); @@ -1446,10 +1411,6 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &file, &file_len) == FAILURE) { return; } - - if ((PG(safe_mode) && (!php_checkuid(file, NULL, CHECKUID_CHECK_FILE_AND_DIR))) || php_check_open_basedir(file TSRMLS_CC)) { - RETURN_FALSE; - } /* encoding handled by property on doc */ @@ -1539,7 +1500,7 @@ cvp.userData = NULL; cvp.error = (xmlValidityErrorFunc) php_dom_validate_error; - cvp.warning = NULL; + cvp.warning = (xmlValidityErrorFunc) php_dom_validate_error; if (xmlValidateDocument(&cvp, docp)) { RETVAL_TRUE; @@ -1735,9 +1696,6 @@ } if (mode == DOM_LOAD_FILE) { - if ((PG(safe_mode) && (!php_checkuid(source, NULL, CHECKUID_CHECK_FILE_AND_DIR))) || php_check_open_basedir(source TSRMLS_CC)) { - RETURN_FALSE; - } newdoc = htmlParseFile(source, NULL); } else { newdoc = htmlParseDoc(source, NULL); @@ -1807,10 +1765,6 @@ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &file, &file_len) == FAILURE) { return; - } - - if ((PG(safe_mode) && (!php_checkuid(file, NULL, CHECKUID_CHECK_FILE_AND_DIR))) || php_check_open_basedir(file TSRMLS_CC)) { - RETURN_FALSE; } /* encoding handled by property on doc */
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php