Estoy tratando de crear un archivo CSV mediante PHP y el código creado para ello, que funciona sin problemas en mi maquina local, no lo hace igual al subirlo al servidor compartido. En realidad el archivo sí se crea con fopen, pero ninguno de los comandos de escritura (fwrite ni fputcsv) parece funcionar; al terminar de correr el código el archivo queda completamente vacío (0 bytes), pero no se reporta ningún error a pesar de tener error_reporting establecido a '-1'.
Incluso he aplicado chmod() para conceder todos los permisos al archivo, pero sigue quedando el archivo en blanco.
Sólo se me ocurre que pueda ser una directiva de PHP o Apache, pero no logro establecer cuál; he buscado información al respecto pero nada me ha ayudado.
¿Alguna idea?
Código :
function rst2csv($file,$rst,$sep=';',$quo='"',$esc="\\",$fdl="\r\n") { //echo 'bdata.rst2csv( $rst = "'.rst2tbl($rst).'",$sep = "'.$sep.'",$quo = "'.$quo.'",$esc = "'.$esc.'",$fdl = "'.$fdl.'" )<br/>'; //onlydebug //crea el archivo de salida $file = 'tmp/'.$file.'.csv'; echo $file.'<br/>'; $ff = fopen ($file,'w'); echo chmod($file,0777); //ecribe el archivo de salida if(data($rst)) { // crea la cadena de cabecera $reg = ''; // inicializa el registro o linea de datos while ($fld = getfld($rst)) { $reg.= (($reg=='')?'':$sep).ucfirst($fld->name); } //escribe la cadena de cabecera fwrite($ff,$reg.$fdl); //recorre el recordset $rst y escribe cada registro $row en el archivo de salida while ($row = getrow_assoc($rst)) { fputcsv($ff,$row,$sep,$quo,$esc); } } //cierra el archivo fclose($ff); //reinicia el recorset para su uso restart($rst); //devuelve la ruta del archivo creado return $file; }
Como os dije el código funciona perfectamente en modo local, no le presteis atención a variables y funciones; el problema surge en el servidor compartido.
Os agradezco cualquier ayuda