Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Kami en 5 Junio 2008, 22:28 pm



Título: Coger lo que hay en medio
Publicado por: Kami en 5 Junio 2008, 22:28 pm
Me gustaría saber si hay alguna función en PHP que lo que haga sea coger de entre dos palabras, la palabra de enmedio, un ejemplo:

Si le doy una web entera y en una parte tiene el codigo

Código
  1. </a> <a href="http://www27.megavideo.com/files/60ba5dcce06b5a8eff72ab80db05069b/You%20raise%20me%20up.wmv" target="_blank" style="f...

Bueno pues dandole el primer valor:
Citar
</a> <a href="

Y el segundo:
Citar
" target="_blank" style="f...

Pues que me pase a una variable lo del medio.

Yo lo haría con un remplace, pero al haber más cosas me quedé blanca.


Título: Re: Coger lo que hay en medio
Publicado por: Ertai en 5 Junio 2008, 22:35 pm
Manejo de strings en PHP (ver página oficial)

http://es2.php.net/substr

http://es2.php.net/manual/es/function.strrchr.php

http://es2.php.net/manual/es/function.strstr.php


Título: Re: Coger lo que hay en medio
Publicado por: ActiveSheet en 6 Junio 2008, 01:05 am
solo quieres recojer el vinculo?

facil, no nesesitas substr

con un explode


Título: Re: Coger lo que hay en medio
Publicado por: Kami en 6 Junio 2008, 11:46 am
Bueno, muchas gracias a los dos  :-*

Lo he estado mirando y creo que el mejor sería el substr ya que el "explode" no funcionaría con el código fuente de una web entera ¿No?


Título: Re: Coger lo que hay en medio
Publicado por: Ertai en 6 Junio 2008, 12:17 pm
Usar el explode es ir a lo fácil y puede que depende de que situación no te funcione. Mejor currate una función que lo haga todo usando las funciones que te puse.

Saludos.


Título: Re: Coger lo que hay en medio
Publicado por: Azielito en 6 Junio 2008, 23:22 pm
Tambien podrias usar

http://es2.php.net/manual/es/function.preg-match.php

para buscar todas las que coincidan con un patron, o sea, todos los links :D


Título: Re: Coger lo que hay en medio
Publicado por: WHK en 17 Junio 2008, 00:06 am
Código
  1. <?php
  2.  
  3. function desde_hasta($desde, $hasta, $contenido){
  4. if(eregi($desde ,$contenido)){
  5.  $retorno = explode($desde, $contenido);
  6.  $retorno = $retorno[1];
  7.  $retorno = explode($hasta, $retorno);
  8.  $retorno = $retorno[0];
  9.  return $retorno;
  10. } else {
  11.  return FALSE;
  12. }
  13. }
  14.  
  15. ?>
Debes ser lo mas especifico posible ya que solo debuelve la primera coincidencia, o sea.,.. si la misma coincidencia se repite mas de una ves debolverá solo la primera a menos que lo modifiques de retorno[1] a retorno[2], es mas... hasta puedes agregarlo como una variable extra :P
Código
  1. function desde_hasta($desde, $hasta, $contenido,$cantidad){...
Donde cantidad = $cantidad+1;