Foros del Web » Programando para Internet » PHP »

Problema con array_keys() The first argument should be an array in

Estas en el tema de Problema con array_keys() The first argument should be an array in en el foro de PHP en Foros del Web. Hola a todos... tengo un problema con una función que no logro hacer funcionar.... El tema es así, tengo un php llamado func_salida.php donde tengo ...
  #1 (permalink)  
Antiguo 11/09/2012, 18:36
 
Fecha de Ingreso: enero-2008
Mensajes: 79
Antigüedad: 16 años, 9 meses
Puntos: 1
Problema con array_keys() The first argument should be an array in

Hola a todos... tengo un problema con una función que no logro hacer funcionar....

El tema es así, tengo un php llamado func_salida.php donde tengo todo lo que se muestra en el sitio. este archivo tiene un require a func_bbcode.php... Bueno eso para empezar

En el archivo func_salida dentro de un DIV especifico que tengo para mostrar noticias, dentro de este divo hago el llamado a la función

Código PHP:
<?php
bbcodenoticias
();
?>
Esta función lo que hace es solo mostrar el texto del post!

Estoy trabajando con una función para convertir el BBCode en HTML y acá es donde reside el gran problema...

si coloco todo el contenido o sea el array de bb code la función para reemplazar los bb code por el html y el echo para escribir el resultado dentro del archivo "func_salida.php" FUNCIONA PERFECTO!!!

Pero como no quiero tener tanto en ese archivo sino más bien la estructura, quise hacer la función dentro del archivo func_bbcode.php... Esta funciona perfecto hasta que llega a la función para convertir el BBCode en HTML donde me da el error Warning: array_keys() [function.array-keys]: /func_bbcode.php on line 43

Aquí el contenido del archivo func_bbcode.php
Código PHP:
<?php

function bbcodenoticias(){
                    
$conexion conecta_db();
                    
$sql mysqli_query($conexion"SELECT topic_id, post_subject, post_text, post_time, bbcode_uid FROM phpbb_posts WHERE forum_id='3' ORDER BY post_id DESC LIMIT 1"); 
                    
                    while(
$row mysqli_fetch_array($sql)){
                    
$t $row["topic_id"];
                    
$titulo $row["post_subject"];
                    
$titulo strtoupper($titulo);
                    
$post $row["post_text"];
                    
$fecha $row["post_time"];
                    
$fecha date('[d/m/y]',$fecha);
                    
$bbcode_uid $row["bbcode_uid"];
                    
// Compruebo que se haya tomado bien el valor de post_text y por lo tanto de la base de datos... echo solo de prueba
                    
echo $post;
                    
$bb_code = array(
                            
//Letra negrita
                            
'[b:'.$bbcode_uid.']' => '<strong>',
                            
'[/b]' => '</strong>',
                            
                            
//Letra cursiva
                            
'[i'.$bbcode_uid.']' => '<em>',
                            
'[/i]' => '</em>',
                            
                            
//Letra subrayada
                            
'[u'.$bbcode_uid.']' => '<u>',
                            
'[/u]' => '</u>',
                            
                            
//Enter
                            
'/n' => '<br>',
                            
                            
//Imagenes
                            
'[img'.$bbcode_uid.']' => '<img src="',
                            
'[/img'.$bbcode_uid.']' => '" />' ,
                            
                            
/*Links
                            '[url]' => '<a href="',
                            '[/url]' => '"></a>'*/
                            
);
                            
                    function 
reemplazar($codigo) {
                            
$search array_keys$GLOBALS['bb_code'] );
                            
$codigo str_replace$search$GLOBALS['bb_code'], $codigo );
                            return 
$codigo;
                    }

                    
// Reemplazamos el BBCode por código HTML y lo mostramos en la página
                    
echo '<p>'.reemplazar$post ).'</p>';
                    }

                    
mysqli_free_result($sql); 
                    
mysqli_close($conexion);
                    
}
                    

?>
La linea 43 es
Código PHP:
$search array_keys$GLOBALS['bb_code'] ); 
podrían por favor decirme en que me estoy equivocando se que mi error es sumamente de novato!!! pero bueno sepan entender que estoy aprendiendo, y hacía más de 3 años que no tocaba nada de programación...

CSS y html por suerte siguen un poquito grabados en mi mente pero PHP se fue no se por donde quedo jajaja...

y si pueden por favor expliquenme porque al estar en el archivo func_salida.php anda bien todo el script pero cuando lo coloco en el otro archivo no.

Espero su ayuda desde ya muchas gracias...
  #2 (permalink)  
Antiguo 11/09/2012, 20:02
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses
Puntos: 2237
Respuesta: Problema con array_keys() The first argument should be an array in

Dónde aprendiste a usar $GLOBALS?... sería con algún código que asume que la directiva register_globals está activa?

Te recomiendo leer esto: http://php.net/manual/es/reserved.variables.globals.php

Por otra parte, no le veo sentido que tengas la función reemplazar() dentro de otra función, cuando lo único que hace es un str_replace() y te puedes ahorrar ese revoltijo.
__________________
- León, Guanajuato
- GV-Foto

Etiquetas: html, imagenes, mysql, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:40.