ID:          44392
 Comment by:  jordan dot raub at dataxltd dot com
 Reported By: php at benjaminschulz dot com
 Status:      Open
 Bug Type:    Feature/Change Request
 PHP Version: 5.3CVS-2008-03-10 (CVS)
 New Comment:

add a protected member function to SplFileObject so that extending
classes can have more control of the file handle... patch included
against php5.2.6..


--- php-5.2.6/ext/spl/spl_directory.c   2008-02-13 04:23:26.000000000
-0800
+++ php52GetResource/ext/spl/spl_directory.c    2008-11-14
13:22:17.000000000 -0800
@@ -2218,6 +2218,15 @@
        }
 } /* }}} */

+/* {{{ proto void SplFileObject::getFileResource()
+   Seek to specified line */
+SPL_METHOD(SplFileObject, getFileResource)
+{
+       spl_filesystem_object *intern =
(spl_filesystem_object*)zend_object_store_get_object(getThis()
TSRMLS_CC);
+
+       php_stream_to_zval(intern->u.file.stream, return_value);
+} /* }}} */
+
 /* {{{ Function/Class/Method definitions */
 static
 ZEND_BEGIN_ARG_INFO_EX(arginfo_file_object___construct, 0, 0, 1)
@@ -2310,6 +2319,7 @@
        SPL_ME(SplFileObject, getMaxLineLen,  NULL, ZEND_ACC_PUBLIC)
        SPL_ME(SplFileObject, hasChildren,    NULL, ZEND_ACC_PUBLIC)
        SPL_ME(SplFileObject, getChildren,    NULL, ZEND_ACC_PUBLIC)
+       SPL_ME(SplFileObject, getFileResource,NULL,
ZEND_ACC_PROTECTED)
        SPL_ME(SplFileObject, seek,           arginfo_file_object_seek,
         ZEND_ACC_PUBLIC)
        /* mappings */
        SPL_MA(SplFileObject, getCurrentLine, SplFileObject, fgets,    
 NULL, ZEND_ACC_PUBLIC)


Previous Comments:
------------------------------------------------------------------------

[2008-03-10 14:45:49] php at benjaminschulz dot com

Description:
------------
It would be nice if it would be possible to get the underlying resource
handle of an SplFileObject to be able to add stream filters on the file.
Sadly the URI parser in PHP seems to be broken and URIs with filters
like php://filter/read=convert.iconv.ISO-8859-15/UTF-8/resource=...
cannot be used (encoding the slash doesn't work either (%2F)) therefore
it would be nice if one could access the underlying resource handle f.e.
by providing a protected $fp in SplFileObject one could use in a child
class then and do the stream_filter_append() there.



------------------------------------------------------------------------


-- 
Edit this bug report at http://bugs.php.net/?id=44392&edit=1

Reply via email to