Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => 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 (html4strict) [Seleccionar]
</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 (php) [Seleccionar]
<?php

function desde_hasta($desde$hasta$contenido){
 if(
eregi($desde ,$contenido)){
  
$retorno explode($desde$contenido);
  
$retorno $retorno[1];
  
$retorno explode($hasta$retorno);
  
$retorno $retorno[0];
  return 
$retorno;
 } else {
  return 
FALSE;
 }
}

?>

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 (php) [Seleccionar]
function desde_hasta($desde, $hasta, $contenido,$cantidad){...
Donde cantidad = $cantidad+1;