elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Escribir libremente en un HTML a través de PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Escribir libremente en un HTML a través de PHP  (Leído 4,432 veces)
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Escribir libremente en un HTML a través de PHP
« en: 29 Enero 2013, 17:37 pm »

Hola,

Hay algúna manera de modificar un archivo de texto cualquiera (html...), pudiendo añadir textos en la linea y columna deseada. Eso sí todo a través de un script PHP.

Saludos!



En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: Escribir libremente en un HTML a través de PHP
« Respuesta #1 en: 29 Enero 2013, 17:40 pm »

Tienes file_get_contents() para obtener cualquier html, quizas podrias editar algo en cierta linea, columna eso si, no se me ocurre para nada.


En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: Escribir libremente en un HTML a través de PHP
« Respuesta #2 en: 29 Enero 2013, 19:20 pm »

Mmm es que la idea es que al crear una nueva pagina, esto se añada a un menú que hay en HTML... ;/
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Escribir libremente en un HTML a través de PHP
« Respuesta #3 en: 29 Enero 2013, 20:45 pm »

LoL. Pues haz el menú en PHP y que vaya obteniendo los items de un xml por ejemplo. Hay ciertas Class'es muy buenas para tratar XML en PHP. Así luego haces un foreach y muestras cada item del menú.

Ademas te sera mucho mas fácil editar el XML para agregar nuevas paginas.




Saludos
 
En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: Escribir libremente en un HTML a través de PHP
« Respuesta #4 en: 29 Enero 2013, 21:32 pm »

No, no entendiste bien.

Hay ya una página creada donde hay toda una lista.

Ejemplo
lista.html
Código:
<body>
<ul>
<li>Noticia 1</li>
<li>Noticia 2</li>
<li>- Noticia 3</li>
</ul>
</body>

Ahora yo quiero un script php que añada a lista.html un nuevo punto, es decir que escriba <li>Noticia 4</li>. Así entonces se mostrará lo que quiero.

Se entiende más o menos?
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: Escribir libremente en un HTML a través de PHP
« Respuesta #5 en: 30 Enero 2013, 04:27 am »

Donde tienes "Noticia 1, Noticia 2, Noticia 3 y Noticia 4"?
En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: Escribir libremente en un HTML a través de PHP
« Respuesta #6 en: 30 Enero 2013, 08:54 am »

Como he indicado en lista.html :)

Esa lista se encuentra en un html, lo que quiero hacer con el php es que añada "<li>Noticia X</li>". Y no puede ser con fwrite() ya que esto lo añade al final.
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: Escribir libremente en un HTML a través de PHP
« Respuesta #7 en: 30 Enero 2013, 19:23 pm »

El que no me entiende eres tu -.- pero bueno... Supongamos que tenemos un archivo...

Código
  1. <!doctype html>
  2. <meta charset="utf-8">
  3. <title>POC</title>
  4. </head>
  5.   <ul id="mimenu">
  6.      <li>Menu 1</li>
  7.      <li>Menu 2</li>
  8.      <li>Menu 3</li>
  9.   </ul>
  10. </body>
  11. </html>

Podrías utilizar DOM para modificarlo,

Código
  1. <?php
  2. $archivo = 'documentoHTML.html';
  3. // Declaramos el DOM object.
  4. $doc = new DOMDocument;
  5. // Cargamos el archivo.
  6. $doc->loadHTMLFile($archivo);
  7. // Al final, queremos que lo ordene un poco.
  8. $doc->formatOutput = true;
  9. // Buscamos el elemento con id "mimenu"
  10. $elemento = $doc->getElementById('mimenu');
  11. // Creamos un nuevo li con contenido "Menu 5"
  12. $nuevo = $doc->createElement('li','Menu 5');
  13. // Agregamos el nuevo li al elemento
  14. $elemento->appendChild($nuevo);
  15. // Guardamos el archivo HTML
  16. $doc->saveHTMLFile($archivo);
  17. ?>

Claro que esto agrega automáticamente el html,head y etc etc etc... así que tendrás que buscar una solución para que no interfiera con lo tuyo, en caso de que uses HTML5.

También puedes utilizar regex..

Código
  1. <?php
  2. $archivo = 'documentoHTML.html';
  3.  
  4. function anadir_a_ul($nuevo=NULL,$id=NULL,$contenido){
  5.   // Extraemos el menu.
  6.   $menu = preg_match('/<ul id\=\"'.$id.'\">(.*)<\/ul>/imsu', $contenido,$result);
  7.   if(!$menu){return false;}
  8.   // Declaramos el nuevo li.
  9.   $nuevo = "<li>".$nuevo."</li>\n";
  10.   // Lo añadimos detras del </ul> y quitamos todas las lineas blancas previas.
  11.   $result = str_replace('</ul>',$nuevo.'</ul>',preg_replace('/^[ \t]*[\r\n]+/imu','',$result[0]));
  12.   // reemplazamos el nuevo con el viejo
  13.   $final = preg_replace('/<ul id\=\"'.$id.'\">(.*)<\/ul>/imsu',$result,$contenido);
  14.   return $final;
  15. }
  16.  
  17. // Obener contenido del archivo.
  18. $contenido = file_get_contents($archivo);
  19. // Procesar la funcion.
  20. $contenido_nuevo = anadir_a_ul('Menu 5','mimenu',$contenido);
  21. // Abrir archivo reemplazando su contenido.
  22. $handle = fopen($archivo,'w+');
  23. // Guardar nuevo contenido.
  24. fwrite($handle,$contenido_nuevo);
  25. fclose($handle);
  26. ?>

Lo que retornaría:
Código
  1. <!doctype html>
  2. <meta charset="utf-8">
  3. <title>POC</title>
  4. </head>
  5.   <ul id="mimenu">
  6.      <li>Menu 1</li>
  7.      <li>Menu 2</li>
  8.      <li>Menu 3</li>
  9.   <li>Menu 5</li>
  10. </ul>
  11. </body>
  12. </html>

PD: Lo que has dicho de fwrite no es cierto. Mas que nada porque todo depende de con que propiedades abres el archivo. Si lo abres con a+ por ejemplo, si, escribirás en la ultima linea, pero si lo abres con r+ escribirás al principio.

PD2: Te estas complicando enormemente la vida y no entiendo porque. Imagínate que tienes que editar varios archivos... tendrías que ir modificandolos todos.. ademas ni siquiera sabes el peso que puede llegar a tener ese archivo.. eso es carga adicional INUTIL para PHP y para el servidor. Re-lee lo que te dije anteriormente es mucho mas fácil obtener el menu de otro archivo que tener que editar el html entero cada vez que quieres añadir uno nuevo.

Pero bueno... si estas empeñado en tener lo tuyo... ahí lo tienes.. espero que te sirva.

Saludos
En línea

Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: Escribir libremente en un HTML a través de PHP
« Respuesta #8 en: 31 Enero 2013, 16:59 pm »

El que no me entiende eres tu -.- pero bueno... Supongamos que tenemos un archivo...

Sí, ya entendí, pero la forma de XML y demás es la más eficaz?

Podrías utilizar DOM para modificarlo,

Código
  1. <?php
  2. $archivo = 'documentoHTML.html';
  3. // Declaramos el DOM object.
  4. $doc = new DOMDocument;
  5. // Cargamos el archivo.
  6. $doc->loadHTMLFile($archivo);
  7. // Al final, queremos que lo ordene un poco.
  8. $doc->formatOutput = true;
  9. // Buscamos el elemento con id "mimenu"
  10. $elemento = $doc->getElementById('mimenu');
  11. // Creamos un nuevo li con contenido "Menu 5"
  12. $nuevo = $doc->createElement('li','Menu 5');
  13. // Agregamos el nuevo li al elemento
  14. $elemento->appendChild($nuevo);
  15. // Guardamos el archivo HTML
  16. $doc->saveHTMLFile($archivo);
  17. ?>

Lo que buscava!! El DOM funciona perfectamente, no sabía su existencia :D Para insertar dentro de ese li, un link? Hay manera?

Gracias!! y saludos;
Puntoinfinito
En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Puntoinfinito


Desconectado Desconectado

Mensajes: 919


#! /win/archlinux


Ver Perfil WWW
Re: Escribir libremente en un HTML a través de PHP
« Respuesta #9 en: 1 Febrero 2013, 17:31 pm »

Ah, otra cosa, el DOM reguarda el archivo en una codificación que me deshace todos los accentos y demás. He probado de añadir esto antes de ejecutar el saveHTMLfile;

 $doc->encoding = 'UTF-8'; y  $doc->encoding = 'iso-8859-1';

Pero nada... :)

Con que se tendría que hacer?
« Última modificación: 1 Febrero 2013, 17:37 pm por Puntoinfinito » En línea

AHORA EN SOFTONIC || CLICK HERE!!
Base64: QWNhYmFzIGRlIHBlcmRlciAxIG1pbnV0byBkZSB0dSB2aWRhLiBPbOkh



HACK AND 1337 : http://hackandleet.blogspot.com
WEBSITE: http://www.infiniterware.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Escribir en un div desde otro html
Desarrollo Web
sexto 3 4,869 Último mensaje 11 Noviembre 2010, 12:58 pm
por marko1985
que es mejor, escribir codigo html desde un echo o html solo
Desarrollo Web
morenochico 1 4,563 Último mensaje 14 Febrero 2011, 19:10 pm
por ~ Yoya ~
Escribir html???
Desarrollo Web
prometheus48 5 2,998 Último mensaje 12 Octubre 2011, 04:29 am
por SoloNuevas
Escribir un formulario html en una pagina html
Desarrollo Web
adriancarcamo 1 3,074 Último mensaje 21 Febrero 2012, 18:38 pm
por Spider-Net
Escribir comandos en una ventana enviados a través de NetCat
Dudas Generales
WaAYa HaCK 0 2,176 Último mensaje 2 Marzo 2012, 19:34 pm
por WaAYa HaCK
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines