There are several errors in your code.
1 - Don't use the putenv to set ORACLE environment. This won't work correctly.
You should put them in the Apache user environement or in a system wide profile.( /etc/profile or /apache_user_home/.profile )
2 - You can't directly put the variable to retrieve an output parameter from Oracle.
You must previously bind the variable to the Oracle parameter after having parsing the statement then execute the procedure.
ora_parse($curs,"begin test(:city); END;");
ora_bind($curs,"city",":city",50,2 );
// where 50 is the length of the parameter
// and 2 is for OUTPUT parameter
ora_exec($curs);
echo "City=$city";
3- There are 2 set of functions to deal with Oracle and PHP. Oracle and OCI. You're using the Oracle one.
OCI8 library is more powerful. You should give it a try.
You can compile it by using
./configure --with_oci8=$ORACLE_HOME
Hth
JBL