Foros del Web » Programando para Internet » PHP »

Extraer datos de una Cadena en PHP

Estas en el tema de Extraer datos de una Cadena en PHP en el foro de PHP en Foros del Web. Hola chicos, estoy intentando hacer lo que dice el título del post pero la verdad ske no tengo ni idea de por donde empezar.... Les ...
  #1 (permalink)  
Antiguo 21/03/2011, 06:10
Avatar de Z3R0N3  
Fecha de Ingreso: junio-2010
Ubicación: En algún lugar de la mancha de cuyo nombre no quiero acordarme...
Mensajes: 73
Antigüedad: 13 años, 10 meses
Puntos: 4
Extraer datos de una Cadena en PHP

Hola chicos, estoy intentando hacer lo que dice el título del post pero la verdad ske no tengo ni idea de por donde empezar.... Les explico:


Supongamos que tengo una cadena así:


Código:
$cadena = '<a href="ARCHIVOS/imagen.png" target="_blank">imagen.png</a>';

Me gustaría extrer el nombre del archivo (imagen.png), es decir, lo que se encuentra entre el tag de abertura y cierre de del enlace.



También quisiera saber como extraer de aquí:


Código:
$cadena ="<a href=\"http://webflv1300182835093#video\">Reproducir</a>";

Esto: "webflv1300182835093.flv" es decir, el nombre del video que es "webflv1300182835093" + ".flv" (la extensión siempre será la misma por lo que no hay problema en añadirla despues).


Total, las cadenas deberían quedar:

1 - imagen.png
2 - webflv1300182835093.flv


Bueno muchísimas gracias anticipadas equipo y espero vuestras respuestas.


Gracias y Salu2 :P
  #2 (permalink)  
Antiguo 21/03/2011, 06:29
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: Extraer datos de una Cadena en PHP

Yo te digo como haría el de la imagen.

Código PHP:
$cadena '<a href="ARCHIVOS/imagen.png" target="_blank">imagen.png</a>';
//Buscas la posición de, por ejemplo, la primera barra, porque en este caso sólo hay dos
$posicion_barra=strpos($cadena,'/');
//Hago una primera subcadena de la posición de la barra + 1
$substr=substr($cadena,$posicion_barra+1);
//Buscas la posición de las comillas dobles de la subcadena
$posicion_comillas=strpos($substr,'"');
//Haces una subcadena desde la posición 0 con una longitud de la posición de las comillas dobles
$imagen=substr($substr,0,$posicion_comillas); 
  #3 (permalink)  
Antiguo 21/03/2011, 06:31
 
Fecha de Ingreso: septiembre-2003
Mensajes: 1
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: Extraer datos de una Cadena en PHP

Prueba a usar la funcion:
strrpos — Encuentra la posición de la última aparición de un substring en un string

Como tienes patrones de cadenas fijos es facil identificar las posiciones y recorrer la cadena para extraer lo que necesitas con la funcion: substr — Devuelve parte de una cadena.

Suerte!!
  #4 (permalink)  
Antiguo 22/03/2011, 11:55
Avatar de Z3R0N3  
Fecha de Ingreso: junio-2010
Ubicación: En algún lugar de la mancha de cuyo nombre no quiero acordarme...
Mensajes: 73
Antigüedad: 13 años, 10 meses
Puntos: 4
Respuesta: Extraer datos de una Cadena en PHP

Bueno de primera mano muchísimas gracias a ambos.


Total, creo que éste tema quedaría cerrado con el aporte de un usuario de otro site... :D (como siempre "salvandome el culo", se agradece man si me estás leyendo por aquí)


Igualmente Gracias a ustedes por vuestra rápida respuesta y a vuestras ideas que seguro me servirán para el futuro :P. Gracias.


Dejo el code final ya que doy por cerrado el asunto.

Código:
<?php
function ExtraerFrase($separador1,$separador2,$cadena)
{
  if(strpos($cadena,$separador1)!==false)
  {
    $pos=strpos($cadena,$separador1);
    $a=substr($cadena,$pos+strlen($separador1));
    if(strpos($a,$separador2)!==false)
    {
      $npos=strpos($a,$separador2);
      $b=substr($a,0,$npos);
      return $b;
    }
    else
      return $a;
  }
  else
    return false;
}
$cadena = '<a href="ARCHIVOS/imagen.jpg" target="_blank">imagen.png</a>';
$separador1 = '<a href="ARCHIVOS/';
$separador2 = '" target="_blank">';

$Mostrar = ExtraerFrase($separador1,$separador2,$cadena);
echo "$Mostrar";
echo "<br><br><br>";

$cadena = '<a href=\"http://webflv1300182835093#video\">Reproducir</a>';
$separador1 = '<a href=\"http://';
$separador2 = '#video\">';

$Mostrar = ExtraerFrase($separador1,$separador2,$cadena).'.flv';
echo "$Mostrar";
?>

Resultado:

Código:
imagen.jpg


webflv1300182835093.flv


Gracias gracias gracias :D

Última edición por Z3R0N3; 22/03/2011 a las 12:01

Etiquetas: cadenas
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 20:54.