diff options
author | Christian Stocker <chregu@php.net> | 2002-10-28 08:54:30 +0000 |
---|---|---|
committer | Christian Stocker <chregu@php.net> | 2002-10-28 08:54:30 +0000 |
commit | fe34195288af2a9c15513269661c0e37c13db3d0 (patch) | |
tree | 8596a55917f465dbb412851214482161d26e2e71 /ext/domxml/php_domxml.c | |
parent | 728eacbf52b7b1dbc45af06d622d1fe7e4c01793 (diff) | |
download | php-git-fe34195288af2a9c15513269661c0e37c13db3d0.tar.gz |
Patch by Morus Walter, concerning some dtd/entity expanding stuff.
Diffstat (limited to 'ext/domxml/php_domxml.c')
-rw-r--r-- | ext/domxml/php_domxml.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/ext/domxml/php_domxml.c b/ext/domxml/php_domxml.c index 77ce4c86eb..afaf910339 100644 --- a/ext/domxml/php_domxml.c +++ b/ext/domxml/php_domxml.c @@ -3777,6 +3777,7 @@ PHP_FUNCTION(xmldoc) int mode = 0, prevSubstValue; int oldvalue = xmlDoValidityCheckingDefaultValue; int oldvalue_keepblanks; + int prevLoadExtDtdValue = xmlLoadExtDtdDefaultValue; zval *errors ; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|lz", &buffer, &buffer_len, &mode, &errors) == FAILURE) { @@ -3831,6 +3832,7 @@ PHP_FUNCTION(xmldoc) } xmlSubstituteEntitiesDefault (prevSubstValue); xmlDoValidityCheckingDefaultValue = oldvalue; + xmlLoadExtDtdDefaultValue = prevLoadExtDtdValue; xmlKeepBlanksDefault(oldvalue_keepblanks); if (!docp) @@ -4955,13 +4957,21 @@ PHP_FUNCTION(domxml_xslt_stylesheet) int ret; char *buffer; int buffer_len; + int prevSubstValue, prevExtDtdValue; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &buffer, &buffer_len) == FAILURE) { RETURN_FALSE; } + prevSubstValue = xmlSubstituteEntitiesDefault (1); + prevExtDtdValue = xmlLoadExtDtdDefaultValue; + xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS; + docp = xmlParseDoc(buffer); + xmlSubstituteEntitiesDefault (prevSubstValue); + xmlLoadExtDtdDefaultValue = prevExtDtdValue; + if (!docp) RETURN_FALSE; @@ -5014,13 +5024,21 @@ PHP_FUNCTION(domxml_xslt_stylesheet_file) xsltStylesheetPtr sheetp; int ret, file_len; char *file; + int prevSubstValue, prevExtDtdValue; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &file, &file_len) == FAILURE) { RETURN_FALSE; } + prevSubstValue = xmlSubstituteEntitiesDefault (1); + prevExtDtdValue = xmlLoadExtDtdDefaultValue; + xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS; + sheetp = xsltParseStylesheetFile(file); + xmlSubstituteEntitiesDefault (prevSubstValue); + xmlLoadExtDtdDefaultValue = prevExtDtdValue; + if (!sheetp) RETURN_FALSE; |