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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  [URGENTE] Como coger el texto entre dos carácteres específicos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [URGENTE] Como coger el texto entre dos carácteres específicos  (Leído 4,770 veces)
CICOLO_111234

Desconectado Desconectado

Mensajes: 200

CICOLO_111234


Ver Perfil WWW
[URGENTE] Como coger el texto entre dos carácteres específicos
« en: 11 Agosto 2009, 16:53 pm »

Hola!

Lo que quiero es que cuando el usuario meta un código fuente como éste:
Código
  1. <title>Título de la página</title>
  2. <body>Hola</body>
  3. </html>

Se detecte automáticamente el texto que se encuentra entre <title> y </title> para adivinar el título.

Saludos


En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [URGENTE] Como coger el texto entre dos carácteres específicos
« Respuesta #1 en: 11 Agosto 2009, 17:57 pm »

Hay dos formas..

1. la básica:
Código
  1. <?php
  2. $buffer = '
  3. <html>
  4. <title>Título de la página</title>
  5. <body>Hola</body>
  6. </html>
  7. ';
  8. $titulo = explode('<title>', $buffer);
  9. $titulo = explode('</titulo>', $titulo[1]);
  10. $titulo = $titulo[0];
  11. echo $titulo;
  12. ?>

2. con mi función que ya casi va a cumplir el año :-[
Código
  1. function desde_hasta($desde, $hasta, $contenido, $cantidad = false, $retornar_todo = false){
  2.  if(eregi($desde ,$contenido)){
  3.   $retorno = explode($desde, $contenido);
  4.   foreach($retorno as $compara){
  5.    $compara = explode($hasta, $compara);
  6. if($compara = $compara[0])
  7. $retorna[] = $compara;
  8. unset($compara);
  9.   }
  10.   if($retornar_todo){
  11.    unset($retorna[0]);
  12.    return $retorna;
  13.   }
  14.   if(is_numeric($cantidad)){
  15.    $retorno = $retorna[$cantidad];
  16.   }else{
  17.    $retorno = $retorna[1];
  18.   }
  19.   return $retorno;
  20.  }else{
  21.   return false;
  22.  }
  23. }

como funciona?
Código
  1. <?php
  2. $buffer = '
  3. <html>
  4. <title>Título de la página</title>
  5. <body>Hola</body>
  6. </html>
  7. ';
  8. echo desde_hasta('<titulo>', '</titulo>', $buffer);
  9. ?>
las demás variables son para devolver arrays en caso que haya mas de un <title>,  lo uso generalmente para interpretar rss y archivos xml.


En línea

CICOLO_111234

Desconectado Desconectado

Mensajes: 200

CICOLO_111234


Ver Perfil WWW
Re: [URGENTE] Como coger el texto entre dos carácteres específicos
« Respuesta #2 en: 11 Agosto 2009, 18:39 pm »

gracias, funciona perfectamente!

Una cosa más:

también quiero hacer lo mismo con los enlaces:

<a href="pagina.html">Pagina1</a>

Quiero sacar la url (pagina.html) y me funciona, pero si  hay 2 enlaces:

<a href="pagina.html">Pagina1</a>
<a href="pagina2.html">Pagina2</a>

solo me coge la primera. Como hago para que coja los dos enlaces?

Gracias de antemano


SOLUCIONADO


Ya lo he solucionado (Es que me acabo de enterar que era un Array...  :P :P)

Gracias por responder
« Última modificación: 11 Agosto 2009, 19:07 pm por CICOLO_111234 » En línea

[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: [URGENTE] Como coger el texto entre dos carácteres específicos
« Respuesta #3 en: 11 Agosto 2009, 20:40 pm »

Hola. Bueno me gusto mucho tu funcion WHK  :).

Pero tengo una duda y aprobecho que el post trata sobre eso...:

Tambien se podria usar SimpleXML, no?..digo, en lugar de tratar todo el doc HTML como cadenas de texto, trabajarlo como XML?

Esto es posible creo..y de ser así, sería más o menos recomendable que usar funciones 'basadas en cadenas' para trabajar sobre los TAGS HTML?, cosumiría muchos recursos del server?

Saludos  ;D
En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: [URGENTE] Como coger el texto entre dos carácteres específicos
« Respuesta #4 en: 12 Agosto 2009, 01:12 am »

Código
  1. $regexp = '/<title>(.*?)<\/title>/';

XD
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.605


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: [URGENTE] Como coger el texto entre dos carácteres específicos
« Respuesta #5 en: 12 Agosto 2009, 04:40 am »

si no me equivoco regexp usa sensibilidad de mayusculas o no?
si es así entonces un <TITLE> no lo consideraría y un tItlE menos  :P
En línea

^Cloud^

Desconectado Desconectado

Mensajes: 64


La tierra es plana.


Ver Perfil
Re: [URGENTE] Como coger el texto entre dos carácteres específicos
« Respuesta #6 en: 12 Agosto 2009, 08:20 am »

En este caso regexp solo quiere decir "regular expresion". Tienes varias funciones que te permitiran usar esa expresión regular, entre ellas preg_match.
En línea

Ahora resulta que imagino mi pasado
y llevo en esta clínica cuarenta años.
Nunca jamás he pisado la calle
y el electroshock ha sido mi padre
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
*
Desconectado Desconectado

Mensajes: 5.110


Ver Perfil WWW
Re: [URGENTE] Como coger el texto entre dos carácteres específicos
« Respuesta #7 en: 13 Agosto 2009, 19:06 pm »

si no me equivoco regexp usa sensibilidad de mayusculas o no?
si es así entonces un <TITLE> no lo consideraría y un tItlE menos  :P

No, por la función que uses. Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como coger imagen en un Conmutador KMV??¿
Dudas Generales
jeremy100 2 5,470 Último mensaje 25 Abril 2011, 23:24 pm
por jeremy100
COGER TEXTO DE UN COMBOBOX
Java
YanOner 1 2,844 Último mensaje 6 Febrero 2012, 02:04 am
por YanOner
Cómo publicar archivos específicos de aplicación web de ASP.NET
.NET (C#, VB.NET, ASP)
masharich 0 1,611 Último mensaje 19 Junio 2015, 10:53 am
por masharich
Programa que imprime un número entre 0 y un billón como texto [SWI-Prolog]
Programación General
_TTFH_3500 0 2,195 Último mensaje 8 Octubre 2020, 23:34 pm
por _TTFH_3500
ayuda urgente busqueda de texto
Windows
DaVinci4 8 4,046 Último mensaje 10 Julio 2021, 18:14 pm
por Randomize
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines