Foros del Web » Programando para Internet » PHP »

Problema sencillo al buscar una cadena en otra

Estas en el tema de Problema sencillo al buscar una cadena en otra en el foro de PHP en Foros del Web. Buenas. Mi problema es el siguiente, tengo un input en el que el usuario mete una URL y tengo que averiguar si pertenece a un ...
  #1 (permalink)  
Antiguo 13/10/2011, 14:25
 
Fecha de Ingreso: agosto-2011
Mensajes: 6
Antigüedad: 13 años, 2 meses
Puntos: 1
Problema sencillo al buscar una cadena en otra

Buenas.

Mi problema es el siguiente, tengo un input en el que el usuario mete una URL y tengo que averiguar si pertenece a un video de youtube o no. El problema es que el patrón que busco en lo que mete tiene una / y yo creo que por eso se queda pillao (pensando que es una expresión regular o algo así) y siempre se va al else.

Aquí mi código:

Código PHP:
<?php
$buscado 
"http://www.youtube.com/watch?v=WosrUnjb2UQ";
$patrona "youtube.com/watch?v=";
if(
strstr($patrona,$buscado) != FALSE){ 
    echo 
"Existe";
} else {
    echo 
"No Existe";
}
?>
Un saludo! Gracias de antemano.
  #2 (permalink)  
Antiguo 13/10/2011, 14:30
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Problema sencillo al buscar una cadena en otra

Y que pasa si ingresan un link válido pero con un código inválido?

yo prefiero validar si el video existe, que ingresen un código válido, algo así rápido para que lo mejores:

Código PHP:
Ver original
  1. <?php
  2. function validarYT($codigo) {
  3.     $url = "http://gdata.youtube.com/feeds/api/videos/$codigo";
  4.     $arr = get_headers($url, 1);
  5.    
  6.     //Este if es opcional
  7.     if ($arr[0] == 'HTTP/1.0 404 Not Found') {
  8.         return false;
  9.     }
  10.     if ($arr[0] == 'HTTP/1.0 200 OK') {
  11.         return true;
  12.     }
  13.     return false;
  14. }
  15.  
  16. if (validarYT('WosrUnjb2UQ')) {
  17.     echo 'Valido';
  18. } else {
  19.     echo 'Invalido';
  20. }

Ya URL ya queda de cuenta tuya. Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Última edición por andresdzphp; 13/10/2011 a las 14:40
  #3 (permalink)  
Antiguo 13/10/2011, 14:41
 
Fecha de Ingreso: agosto-2011
Mensajes: 6
Antigüedad: 13 años, 2 meses
Puntos: 1
Respuesta: Problema sencillo al buscar una cadena en otra

Ya si en eso llevas razón, pero eso sería otro php aparte. Lo único que quiero es comprobar si introduce el patrón de un video o una búsqueda.

Es decir, si introduce http://www.youtube.com/watch?v=XASDAasd ... o El fari

La pregunta va, como puedo con la función strstr() en la expresión a buscar introducir un / y que php no crea que se trata de una expresión regular.
  #4 (permalink)  
Antiguo 13/10/2011, 14:49
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Problema sencillo al buscar una cadena en otra

Que tal si empiezas por leer el manual sobre la función strstr

Los parámetros son:

String strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )

Lo tienes todo al contrario

En vez de esto:

Código PHP:
Ver original
  1. if(strstr($patrona,$buscado) != FALSE){

debería ser:

Código PHP:
Ver original
  1. if(strstr($buscado, $patrona) != FALSE){

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: str, strstr, validar-link, validar-youtube
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 13:07.