Foros del Web » Programando para Internet » PHP »

Problema al intentar insertar texto en un fichero

Estas en el tema de Problema al intentar insertar texto en un fichero en el foro de PHP en Foros del Web. Hola, Estoy intentando la insercion de una cadena de texto en un fichero HTML. Se esta ejecutando en Apache/SuSe. Lo intento con el siguiente codigo: ...
  #1 (permalink)  
Antiguo 05/02/2010, 05:52
 
Fecha de Ingreso: febrero-2010
Ubicación: Valencia
Mensajes: 6
Antigüedad: 14 años, 2 meses
Puntos: 0
Problema al intentar insertar texto en un fichero

Hola,
Estoy intentando la insercion de una cadena de texto en un fichero HTML. Se esta ejecutando en Apache/SuSe. Lo intento con el siguiente codigo:

Código PHP:
<?php

// Variables necesarias para la ejecucion.
$filename 'Articulos.html';
$cadena=htmlentities('</ol>');
$fileend='</ol>\r\n'.'</body>\r\n'.'</html>\r\n';

// Tratamos los parametros del formulario
foreach($_POST as $nombre_campo => $valor){ 
   
$asignacion "\$" $nombre_campo "='" $valor "';"
   eval(
$asignacion); 
}

// Montamos el texto a añadir
$newbook=htmlentities('  <li>'.$Autores.', <a href=\"papers/'.$Filepdf.'\">\" '.$Titulo.'\"</a>, '.$Revista.' ('.$Editor.') '.$Vol.', no. '.$Numero.' ('.$Fecha.'):'.$Paginas.' </li>\r\n  <br />\r\n');

// Let's make sure the file exists and is writable first.
if (is_writable($filename)) {

    
// Abrimos el fichero.
   
$handle=fopen($filename'r+t') or die('Can not open file $filename');
    
    
// Leemos el fichero y buscamos el final de la lista
    
while (!feof($handle)) {
        
$buffer=htmlentities(fgets($handle));
        if (
$buffer=$cadena) {
            
fwrite($handle,'<br />\r\n');
            
fwrite($handle,$newbook);
            
fwrite($handle,$fileend);    
        } else {
          echo 
'Final:'.$final.' Posicion:'.ftell($handle).' Contenido:'.$buffer;
        }
    }
    
fclose($handle);            
} else {
    echo 
"The file $filename is not writable";
}
?>
Pero con este codigo no me detecta la sentencia HTML "</ol>", que es donde quiero insertar un nuevo elemento de lista, y siempre se me sale por ser el final del fichero. ¿Alguien seria tan amable de hacerme alguna sugerencia de por donde pueden ir los tiros?

Gracias por adelantado.

Última edición por misancer; 09/02/2010 a las 05:49
  #2 (permalink)  
Antiguo 05/02/2010, 07:57
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Problema al intentar insertar texto en un fichero

Si te fijas no estas haciendo correctamente el if, lo que estas haciendo es asignandole (=) el valor $cadena a $buffer, en vez de comparar (==).
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 08/02/2010, 03:10
 
Fecha de Ingreso: febrero-2010
Ubicación: Valencia
Mensajes: 6
Antigüedad: 14 años, 2 meses
Puntos: 0
Problema al intentar insertar texto en un fichero HTML

Cita:
Iniciado por abimaelrc Ver Mensaje
Si te fijas no estas haciendo correctamente el if, lo que estas haciendo es asignandole (=) el valor $cadena a $buffer, en vez de comparar (==).
Gracias por la ayuda, pero despues del cambio, sigue sin encontrar la cadena. Ahora lo he cambiado por el siguiente codigo que tampoco me da la posicion de la cadena:

Código PHP:
//Leemos el fichero y lo metemos en un array
$myfile 'Articulos.html';
$lines file($myfile);   

$pos=array_search('</ol>',$lines,true);
echo 
$pos.' :'.$lines[$pos]; 
En teoria este codigo me deberia de dar en que lineas se encuentran los tag que busco, pero no lo hace. ¿Alguien me haria el favor de darme ideas nuevas? Gracias.

Última edición por misancer; 09/02/2010 a las 05:47

Etiquetas: fichero
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 02:31.