Help needed: php_fopen_wrapper in php 4.3.0

From: Date: Mon, 30 Dec 2002 09:00:14 +0000
Subject: Help needed: php_fopen_wrapper in php 4.3.0
Groups: php.doc php.install 
Request: Send a blank email to phpdoc+get-969350491@lists.php.net to get a copy of this message
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

« previous php.doc (#969350491) next »