Re: Help needed: php_fopen_wrapper in php 4.3.0

From: Date: Mon, 30 Dec 2002 10:11:55 +0000
Subject: Re: Help needed: php_fopen_wrapper in php 4.3.0
References: 1  Groups: php.doc 
Request: Send a blank email to phpdoc+get-969350496@lists.php.net to get a copy of this message
Read http://php.net/streams Goba [one webmaster@php.net] ----- Original Message ----- From: "Mike Wossen" <php@hot.ee> To: <phpdoc@lists.php.net>; <php-install@lists.php.net> Sent: Monday, December 30, 2002 10:00 AM Subject: [PHP-DOC] Help needed: php_fopen_wrapper in php 4.3.0 > I’m migrating from php 4.2.1 to 4.3.0 (rh 7.2). > > I've written my own php template extension. > > > > Compilation runs normally (with 3 warning messages on lines where > php_fopen_wrapper function is used). > > But when i try starting apache i get error message: > > Cannot load /usr/local/apache/libexec/libphp4.so into server: > /usr/local/apache/libexec/libphp4.so: undefined symbol: php_fopen_wrapper > > > Where can I find documentations about all changes made to wrappers in php > 4.3.0. > > Should I need to use new functions like php_stream_open_wrapper_as_file (or > similar) instead? > > > > My piece of code: > > ----------------------------------------------- > > > > PHP_FUNCTION(temp_load) > { > zval **tempfile=NULL, **cachefile=NULL; > int argc; > char *filename; > FILE *fp; > struct stat st; > template *tp; > // TEMPLATELS_FETCH(); > > argc = ZEND_NUM_ARGS(); > if (argc < 1 || argc > 2 || zend_get_parameters_ex(argc, &tempfile, > &cachefile) == FAILURE){ > WRONG_PARAM_COUNT; > } > > switch (argc) { > case 2: > convert_to_string_ex(cachefile); > /* Fall-through. */ > case 1: > convert_to_string_ex(tempfile); > break; > } > > tp = emalloc(sizeof(template)); > tp->bl = emalloc(sizeof(block)); > tp->bl->cont = emalloc(sizeof(mpchain)); > tp->bl->cont->next = NULL; > tp->bl->lastcont = tp->bl->cont; > > tp->bl->lastcont->mp.ptr = NULL; > > tp->bl->prev = NULL; > tp->bl->done = 0; > > tp->cf = NULL; > tp->cached = 0; > > if(cachefile) > { > filename = Z_STRVAL_PP(cachefile); > > > > /* > > LINE WITH WARNING > > */ > if((fp = php_fopen_wrapper(filename,"r", > USE_PATH|ENFORCE_SAFE_MODE|IGNORE_URL, NULL, NULL, NULL))) > { > if(fstat(fileno(fp),&st)) > { > php_error(E_WARNING,"Can't get stats of > \"%s\" - %s",filename,strerror(errno)); > RETURN_FALSE; > } > > if(st.st_size > 0) > { > tp->cached = 1; > goto notemp; > } > } > else if (errno == ENOENT) // cachefile not > found > { > > > /* > > LINE WITH WARNING > > */ > if(!(tp->cf = php_fopen_wrapper(filename,"w", > USE_PATH|ENFORCE_SAFE_MODE|IGNORE_URL, NULL, NULL, &tp->cachefile))) > { > php_error(E_WARNING,"Can't open > cachefile(\"%s\") for writing - %s",filename,strerror(errno)); > RETURN_FALSE; > } > } > else // some other error > { > php_error(E_WARNING,"Can't open cachefile(\"%s\") - > %s",filename,strerror(errno)); > RETURN_FALSE; > } > } > > filename = Z_STRVAL_PP(tempfile); > > > > > /* > > LINE WITH WARNING > > */ > if(!(fp = php_fopen_wrapper(filename,"r", > USE_PATH|ENFORCE_SAFE_MODE|IGNORE_URL, NULL, NULL, NULL))) > { > php_error(E_WARNING,"Can't open tempfile(\"%s\") - > %s",filename,strerror(errno)); > RETURN_FALSE; > } > if(fstat(fileno(fp),&st)) > { > php_error(E_WARNING,"Can't get stats of \"%s\" - > %s",filename,strerror(errno)); > RETURN_FALSE; > } > > notemp: > > tp->bl->lastcont->mp.ptr = emalloc(tp->bl->lastcont->mp.len = > st.st_size); > if(fread(tp->bl->lastcont->mp.ptr,st.st_size,1,fp)!=1) > { > php_error(E_WARNING,"Can't read file \"%s\" - > %s",filename,strerror(errno)); > RETURN_FALSE; > } > > /*php_stream_close(fp);*/ > fclose(fp); > ZEND_REGISTER_RESOURCE(return_value, tp, le_template); > } > /* }}} */ > > > > > Regards, > Mike > > > > -- > PHP Documentation Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > >

« previous php.doc (#969350496) next »