Foros del Web » Programando para Internet » PHP »

str_replace con valores a cambiar cargadas de un funcion

Estas en el tema de str_replace con valores a cambiar cargadas de un funcion en el foro de PHP en Foros del Web. hola a todos, no sabia como poner a este tema, realmente ando realizando una aplicacion y uso str_replace, en los valores de reemplazo lo que ...
  #1 (permalink)  
Antiguo 22/12/2011, 08:05
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 14 años, 5 meses
Puntos: 0
str_replace con valores a cambiar cargadas de un funcion

hola a todos, no sabia como poner a este tema, realmente ando realizando una aplicacion y uso str_replace, en los valores de reemplazo lo que uso es el llamado de una funcion php, ocurre que el reemplazo no lo hace como lo debe hacer, me explico:

almaceno en la variable theme un archivo html

Código PHP:
$theme=file_get_contents("themes/theme1/index.html"); 
luego uso el str_replace:

primero pongo la cadena a buscar, que dentro del html se encuentra, luego hago el llamado a una funcion, y luego paso la variable que contienen el contenido del archivo html para realizar el respectivo reemplazo.

Código PHP:
$file_new=str_replace("{sidebar_iz}",self::getSections(), $theme); 
la funcio al cual llamo simplemente imprime mediante un for unos valores, lo que sucede es que no me reemplaza en la ubicacion de {sidebar_iz} sino que lo imprime o cambia en otra posición distinta, me doy cuenta de que cuando uso echo en la funcion, asi sea un texto sencillo no lo cambia aun en la misma ubicacion de {sidebar_iz}, pero cuando uso un return ahi si funciona, pero no puedo usar return por que debo imprimir x numero de datos dependiendo de los datos cargados de la base de datos en el for.

algo raro lo que ando haciendo pero no c como hacer para dejarlo como lo quiero, espero me puedan ayudar..

he tratado de almacenar toodo lo que imprime el for en una variable unica pero no lo he logrado para poder usar el return.. cualquier ayuda me seria util.



saludos..
  #2 (permalink)  
Antiguo 22/12/2011, 08:15
 
Fecha de Ingreso: julio-2010
Mensajes: 393
Antigüedad: 13 años, 8 meses
Puntos: 67
Respuesta: str_replace con valores a cambiar cargadas de un funcion

la función str_replace puede recibir 1 string para un solo reemplazo o un array para reemplazos múltiples, sería buenos que nos mostraras come queda el retorno de self::getSections()

Saludos.
__________________
Páginas web de alta calidad y hechas a la medida.
  #3 (permalink)  
Antiguo 22/12/2011, 08:33
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: str_replace con valores a cambiar cargadas de un funcion

asi imprime la funcion:

Código PHP:
$section BD::getMySQLQuery("","luos_section"); 
        for(
$i=0;$i<count($section);$i++){
            echo 
$section[$i]["section"];
        } 
$section almacena el numero de datos de la consulta sql, y ese valor lo paso por el for para que me imprima dichos datos..

saludos..
  #4 (permalink)  
Antiguo 22/12/2011, 09:03
 
Fecha de Ingreso: julio-2010
Mensajes: 393
Antigüedad: 13 años, 8 meses
Puntos: 67
Respuesta: str_replace con valores a cambiar cargadas de un funcion

hmmmmmm, no nou nou necesita que self::getSections() te retorne los valores y no que los imprima.
Luego, trata que te retorne un array y no un string, algo más o menos así...

(OjO, este código es solo para darte una idea, si lo pones y te funciona ¡Que suerte! pero solo es para orientarte)

Código PHP:
public static function getSections(){
    
$return = array();
    
$section BD::getMySQLQuery("","luos_section"); 
    for(
$i=0;$i<count($section);$i++){
        
$return[] = $section[$i]["section"];
    } 
    return 
$return;

Saludos!
__________________
Páginas web de alta calidad y hechas a la medida.
  #5 (permalink)  
Antiguo 22/12/2011, 09:27
Avatar de oscalber  
Fecha de Ingreso: octubre-2009
Ubicación: palmira
Mensajes: 103
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: str_replace con valores a cambiar cargadas de un funcion

pues tu respuesta es correcta, solo que no queria retornar un array sino una variable con toodo el contenido del for...por que tendria q utilizar un bucle para imprimir el contenido de ese array...

aqui la cuestion es por que no me quiere tomar esos datos del for y asignarlos donde es, que debe ser donde este {sidebar_iz} y no fuera del div como tal donde esta ubicado esto, y como te digo solo es cuando imprimo con echo, hay alguna forma de almacenar todo el contenido del for en una variable, y que no halla que utilizar un array??

en realidad deseo hacer un template php para poder separar php de html, esta manera pense que iba a resultar, pero seme presento este problema, se que existen librerias ya creadas como smarty, pero no llenan completamente lo que requiero en dicho sistema y es que sea totalmente separado el html del php

saludos..

Última edición por oscalber; 22/12/2011 a las 10:27

Etiquetas: funcion, html, variables
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:03.