Jump to content


Photo

Problema con str_replace() - aplicación php -


  • Please log in to reply
No replies to this topic

#1 dario126

dario126

    Newbie

  • Miembros
  • Pip
  • 1 posts

Posted 21 January 2012 - 08:35 AM

Hola colegas, les comento, estoy desarrollando una aplicación en php y necesito solucionar un problemita que ya me esta sacando canas verdes, hace un tiempo largo que estoy con esto y nada....
Resulta que mi aplicación esta distribuida en MODELO, VISTA y CONTROLADOR.... en el controlador están todas las librerías y hay un controlador que es quien comanda todas las lineas de códigos a ejecutar, incluyendo las librerías correspondientes....
En la vista no existe ningún tipo de código php, solo es html y txt.... para ello el controlador es quien muestra los datos de la base de datos en el html remplazando los txt que le coloco, por ejemplo...en el html coloco <div id="usuario">{USUARIO}</div> y en php controlador coloco un método que contenga str_replace() y que contenga los datos a remplazar ( str_replace($datosHTML,$datosController,$Cadena) )........ mi problema esta en que los datos extraídos desde la base de datos los muestra en el html, pero fuera del div, como que no entendiera que tiene que ir ubicado dentro del div que contiene {USUARIO}... habrá otra forma extraer datos desde la base de datos y remplazarlos en html, y que cumplan un perfecto orden dentro del div?


p/d =cabe aclarar que ese problema lo tengo cuando llamo los datos desde la base de datos y no cuando coloco una cadena simple "Hola mundo".


Para mas ayuda, colocare mis metodos:

PHP:

Código:


delphi
  1. public function getTemplate($cadena, $code, $fill) {
  2.  
  3.         $archivo = "View/default/" . $fill . ".php";
  4.        
  5.        
  6.  
  7.         $remplazo = file_get_contents($archivo);
  8.  
  9.         $remplazo = str_replace($cadena, $code, $remplazo);
  10.  
  11.        
  12.       $fp = fopen($archivo, "r");
  13. $write = fputs($fp, $remplazo);
  14. fclose($fp);
  15. //esto es metodo de la libreria singleton



Controlador :

Código:


delphi
  1. public function index() {
  2.  
  3.  
  4.         $this->callLibrary("Singleton");
  5.         $this->callLibrary("Template");
  6.  
  7.         $this->callMetod(new Template())->callView("header");
  8.  
  9.         $this->callMetod(Singleton::getInstacia())->getTemplate(
  10.                 array(
  11.                     "{fecha}", //dato a remplazar en el html
  12.                     "{titulo}",
  13.                     "{detalle}"
  14.                 ),
  15.                 array(
  16.                     $this->date(),
  17.                     $this->post("titulo"), //dato remplazador
  18.                     $this->post("detalle")),
  19.                 "content");//  archivo
  20.  
  21.  
  22.        
  23.         //siempre instanciando su clase podemos llamar al metodo
  24.         // $this->callMetod(new Template())->callView("content");
  25.         $this->callMetod(new Template())->callView("footer");
  26.     }



HTML Contenido

Código:


delphi
  1. <div id="main">
  2.  
  3.     <div id="content">
  4.         <div id="title">{titulo}</div>
  5.         <div id="fecha">{fecha}</div>
  6.         <div id="detalle">{detalle}</div>
  7.  
  8.     </div>
  9.  
  10.  
  11.  
  12. </div>



Bueno gente espero que me puedan ayudar y muchas gracias por leer mi pregunta...saludos

  • 0




IP.Board spam blocked by CleanTalk.