]> granicus.if.org Git - php/commitdiff
@- Added XsltObject->dump_file($result,$filename[,$compression]) for dumping
authorChristian Stocker <chregu@php.net>
Thu, 22 Aug 2002 15:54:23 +0000 (15:54 +0000)
committerChristian Stocker <chregu@php.net>
Thu, 22 Aug 2002 15:54:23 +0000 (15:54 +0000)
@  xslt-result directly into a file. (chregu)

ext/domxml/php_domxml.c
ext/domxml/php_domxml.h

index 5af6f81db317949293bb3d29d465b3b7e135d4a7..a33c06df84521c1674d0769ccd5f7acfd51f7992 100644 (file)
@@ -282,7 +282,8 @@ static zend_function_entry domxml_functions[] = {
        PHP_FE(domxml_xslt_stylesheet_doc,                                                                      NULL)
        PHP_FE(domxml_xslt_stylesheet_file,                                                                     NULL)
        PHP_FE(domxml_xslt_process,                                                                                     NULL)
-       PHP_FE(domxml_xslt_dump_mem,                                                                    NULL)
+       PHP_FE(domxml_xslt_dump_mem,                                                                            NULL)
+       PHP_FE(domxml_xslt_dump_file,                                                                           NULL)
 #endif
 
        PHP_FALIAS(domxml_add_root,                     domxml_doc_add_root,                    NULL)
@@ -523,6 +524,7 @@ static zend_function_entry php_domxsltstylesheet_class_functions[] = {
 /* TODO: maybe some more methods? */
        PHP_FALIAS(process,                             domxml_xslt_process,                    NULL)
        PHP_FALIAS(dump_mem,                    domxml_xslt_dump_mem,           NULL)
+       PHP_FALIAS(dump_file,                   domxml_xslt_dump_file,          NULL)
        {NULL, NULL, NULL}
 };
 #endif
@@ -4211,6 +4213,44 @@ PHP_FUNCTION(domxml_xslt_dump_mem)
 }
 /* }}} */
 
+/* {{{ proto int domxml_xslt_dump_file(object xslstylesheet, object xmldoc, string filename[, int compression])
+   output XSLT result to File */
+PHP_FUNCTION(domxml_xslt_dump_file)
+{
+       zval *rv, *idxsl, *idxml;
+       xsltStylesheetPtr xsltstp;
+       xmlDocPtr xmldocp;
+       xmlDocPtr docp;
+       xmlChar *doc_txt_ptr;
+       char *filename;
+       int doc_txt_len, filename_len;
+       int ret, compression = 0;
+
+       DOMXML_GET_THIS(idxsl);
+
+       xsltstp = php_xsltstylesheet_get_object(idxsl, le_domxsltstylesheetp, 0 TSRMLS_CC);
+       if (!xsltstp) {
+               php_error(E_WARNING, "%s(): underlying object missing",
+                         get_active_function_name(TSRMLS_C));
+               RETURN_FALSE;
+       }
+
+       if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "os|l", &idxml, &filename, &filename_len, &compression) == FAILURE) {
+               RETURN_FALSE;
+       }
+
+       DOMXML_GET_OBJ(xmldocp, idxml, le_domxmldocp);
+
+       ret = xsltSaveResultToFilename(filename, xmldocp, xsltstp, compression);
+
+       if (ret) {
+               RETURN_FALSE;
+       }
+
+       RETURN_LONG(ret);
+}
+/* }}} */
+
 /* {{{ proto object domxml_parser([string buf[,string filename]])
    Creates new xmlparser */
 PHP_FUNCTION(domxml_parser)
index 0c799f5253e48853b49d312b0363a2dd516434ad..be6a8ca5a584409f3861d28efb516d5a102e06bb 100644 (file)
@@ -230,6 +230,7 @@ PHP_FUNCTION(domxml_xslt_stylesheet_doc);
 PHP_FUNCTION(domxml_xslt_stylesheet_file);
 PHP_FUNCTION(domxml_xslt_process);
 PHP_FUNCTION(domxml_xslt_dump_mem);
+PHP_FUNCTION(domxml_xslt_dump_file);
 PHP_FUNCTION(domxml_xslt_version);
 #endif
 typedef struct {