Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/04/2013, 12:23
Avatar de portalmana
portalmana
 
Fecha de Ingreso: septiembre-2007
Ubicación: Montevideo-Uruguay
Mensajes: 633
Antigüedad: 16 años, 7 meses
Puntos: 80
Respuesta: modificacion de .html con php

Hice una clase que te puede ayudar.
La base es preg_match_all y son expresiones regulares así que podrás ampliarla.

Código PHP:
Ver original
  1. <?php
  2.  
  3. class Preg
  4. {
  5.     /**
  6.      * Texto de Apertura de la expresion regular.
  7.      * @var string
  8.      */
  9.     private $_txtApertura   = '<!-- INICIO -->';
  10.    
  11.     /**
  12.      * Texto de Cierre de la Expresion regular.
  13.      * @var string
  14.      */
  15.     private $_txtCierre     = '<!-- FIN -->';
  16.    
  17.     /**
  18.      * Expresion regular basica.
  19.      * @var string
  20.      */
  21.     private $_expresionRegular = '|%s(.*?)%s|s'; //'/<tag[^>]*>(.*?)<\/tag>/';
  22.    
  23.     /**
  24.      * Texto a ser Evaluado por la expresion regular.
  25.      * @var string
  26.      */
  27.     private $_texto = '';
  28.    
  29.     /**
  30.      * Contiene el Total de Coicncidencias.
  31.      * @var integer
  32.      */
  33.     private $_cantCoincidencias = 0;
  34.    
  35.     /**
  36.      * Contiene las coincidencias.
  37.      * @var array
  38.      */
  39.     private $_coincidencias     = array();
  40.  
  41.     /**
  42.      * Constructor de clase.
  43.      * @param   string $texto   Texto que se quiere evaluar por la expresion regular.
  44.      * @return  void
  45.      */
  46.     public function __construct($texto = null)
  47.     {
  48.         $this->_texto   = (isset($texto))? $texto : '';
  49.     }
  50.    
  51.     /**
  52.      * Configura el texto de apertura de la Expresion Regular.
  53.      * @param string $txt
  54.      */
  55.     public function setApertura($txt)
  56.     {
  57.         $this->_txtApertura = (isset($txt))? $txt : '<!-- INICIO -->' ;
  58.     }
  59.    
  60.     /**
  61.      * Configura el texto de Cierre de la Expresion Regular.
  62.      * @param string $txt
  63.      */
  64.     public function setCierre($txt)
  65.     {
  66.         $this->_txtCierre = (isset($txt))? $txt : '<!-- FIN -->' ;
  67.     }
  68.    
  69.    
  70.     /**
  71.      * Retorna la expresion regular que se utilizara.
  72.      * Meramente informativa.
  73.      * @return string
  74.      */
  75.     public function getExpresionRegular()
  76.     {
  77.         return sprintf($this->_expresionRegular, $this->_txtApertura, $this->_txtCierre);
  78.     }
  79.    
  80.     /**
  81.      * Texto sobre el cual se aplicara el analisis.
  82.      * @param string    $texto      Texto a analizar.
  83.      * @param boolean   $agregar    False remueve el viejo texto y solo permanecera el nuevo.
  84.      *                              True  agrega el texto al final del anterior.  
  85.      */
  86.     public function setTexto($texto, $agregar= false)
  87.     {
  88.         if ($agregar) {
  89.             $this->_texto   = $this->_texto . $texto ;
  90.         } else {
  91.             $this->_texto   = $texto;
  92.         }
  93.     }
  94.    
  95.     /**
  96.      * Extrae todas las coincidencias del texto correspondiente.
  97.      * @return integer  Cantidad de coincidencias.
  98.      */
  99.     public function extraerBloques()
  100.     {
  101.         $this->_cantCoincidencias = preg_match_all($this->getExpresionRegular(), $this->_texto, $this->_coincidencias, PREG_PATTERN_ORDER );
  102.         if ($this->_cantCoincidencias) {
  103.             $this->_coincidencias = $this->_coincidencias[1];
  104.         } else {
  105.             $this->_coincidencias = array();
  106.         }
  107.        
  108.         return $this->_cantCoincidencias;
  109.     }
  110.    
  111.     /**
  112.      * Retorna un arreglo con todas las coincidencias.
  113.      * @return array
  114.      */
  115.     public function getCoincidencias()
  116.     {
  117.         return $this->_coincidencias;
  118.     }
  119. }
  120.  
  121. // Aqui instanciamos la clase y si queremos podemos en este momento darle la frase de busqueda.
  122. // o tambien podemos ponerla mas tarde con setTexto
  123. $a = new Preg('//contenido
  124. texto
  125. texto
  126. //finContenido');
  127. // Definimos el bloque que dará apertura a la búsqueda
  128. $a->setApertura('//contenido');
  129. // Definimos el bloque que dará cierre a la búsqueda
  130. $a->setCierre('//finContenido');
  131. // Si da algun resultado muestra los mismos si no
  132. // nos pone que no hay coincidencias.
  133. if($a->extraerBloques()) {
  134.     var_dump($a->getCoincidencias());
  135. } else {
  136.     echo 'Sin coincidencias';
  137. }

Recuerda inlcuir la clase en tu codigo.

Saludos
__________________
"La imaginación es más importante que el conocimiento. El conocimiento es limitado, mientras que la imaginación no" -- A.Einstein
objetivophp.com,twitter.com/objetivophp