Foros del Web » Programando para Internet » PHP »

Alguien de aqui tiene un foro o pagina que convierta las urls?

Estas en el tema de Alguien de aqui tiene un foro o pagina que convierta las urls? en el foro de PHP en Foros del Web. en el cuadro de texto donde escribe el usuario. ¿osea que si ponen cualquier url de youtube las convierta en video? y que cualquier url ...
  #1 (permalink)  
Antiguo 29/04/2013, 12:05
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Alguien de aqui tiene un foro o pagina que convierta las urls?

en el cuadro de texto donde escribe el usuario.

¿osea que si ponen cualquier url de youtube las convierta en video?
y que cualquier url no importa como este aunque venga en un cochinero de texto y caracteres raros, la pueda convertir a url?

yo la tengo al 80% no he llegado a la azaña de que sea como el twitter

http://www.youtube.com/watch?v=PsbPk...eature=branded

http://youtu.be/gPedH9B8AAE

http://youtu.be/gPedH9B8AAE?t=37s

http://youtu.be/gPedH9B8AAE?hd=1&t=37s

http://www.youtube.com/watch?v=gPedH9B8AAE&hd=1&t=37s

http://www.youtube.com/watch?v=gPedH9B8AAE&hd=1

http://www.youtube.com/watch?v=gPedH9B8AAE

http://www.youtube.com/watch?v=gPedH9B8AAE&t=37s

http://youtu.be/gPedH9B8AAE?hd=1

http://www.youtube.com/embed/gPedH9B8AAE

https://www.youtube.com/embed/gPedH9B8AAE

https://www.youtube-nocookie.com/embed/gPedH9B8AAE *

https://www.youtube-nocookie.com/v/g...3&hl=es_MX


esas son las urls.

hare una prueba aqui veamos de revoltura


http://www.youtube.com/watch?v=PsbPk...eature=branded

http://youtu.be/gPedH9B8AAE no leyo

http://youtu.be/gPedH9B8AAE?t=37s

http://youtu.be/gPedH9B8AAE?hd=1&t=37shttp://s

http://www.youtube.com/watch?v=gPedH...edH9B8AAE&hd=1



http://www.youtube.cofm/watch?v=gPedH9B8AAE

http://www.youtube.com/watch?v=gPedH9B8AAE&t=37s

http://youtu.be/gPedH9Bd8AAE?hd=1

http://www.youtube.com/embed/gPedH9B8AAE

https://www.youtube.com/embed/gPedH9B8AAE

https://www.youtube-nocookie.com/embed/gPedH9B8AAE

https://www.youtube-nocookie.com/v/g...3&hl=es_MX


lo que veo aqui es que lo hacen bien todo :S a mi aun me falta
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #2 (permalink)  
Antiguo 29/04/2013, 12:57
Avatar de HiToGoRoShi  
Fecha de Ingreso: abril-2008
Mensajes: 849
Antigüedad: 16 años
Puntos: 31
Respuesta: Alguien de aqui tiene un foro o pagina que convierta las urls?

esto obtiene el ID del video a partir de una URL

Código PHP:
Ver original
  1. function getYoutubeID($url) {
  2.         $rs = array ();
  3.         parse_str ( parse_url ( $url, PHP_URL_QUERY ), $rs );
  4.         return isset($rs ['v']) ? $rs ['v'] : false;
  5.     }
  #3 (permalink)  
Antiguo 29/04/2013, 13:23
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 9 meses
Puntos: 2237
Respuesta: Alguien de aqui tiene un foro o pagina que convierta las urls?

A ver si esto funciona:

Código PHP:
Ver original
  1. function youtubeIframe($url) {
  2.     $code = '';
  3.     $match = preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+(?=\?)|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#", $url, $matches);
  4.     if((int) $match > 0) {
  5.           $video = $matches[0];
  6.           $code .= "<iframe class=\"youtube-player\" type=\"text/html\" width=\"640\" height=\"480\" ";
  7.           $code .= "src=\"http://www.youtube.com/embed/$video\" frameborder=\"0\"></iframe>\n";
  8.  
  9.     }
  10.     return $code;
  11. }
__________________
- León, Guanajuato
- GV-Foto
  #4 (permalink)  
Antiguo 29/04/2013, 16:23
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: Alguien de aqui tiene un foro o pagina que convierta las urls?

Bueno gracias Xd, pero ya obtengo la id del video. mi problema era a la hora de convertir todas las urls, no solo a video si no a muchas urls sin importar que sea video y aun tengo problemas con los & andersons.

chequen la subi a este servidor

http://comwebsis.xtrweb.com/indexi.php

Inician sesion.
con el
usuario [email protected]
contraseña pruebasforo

ya que entran en el menu de arriba dice interaccion, alli hay un textarea y ponen las urls que quieran
es como la caja de comments del face, si dan enter se envia, y si quieren enviar un enter solo presionan shif mas enter
y si hay fallos XD pues me dicen :D gracias

esta es mi funcion


Código PHP:
Ver original
  1. function getUrls($string)
  2.  
  3. {
  4.  
  5.     //$regex = '/(https?\:\/\/[^\" ]+)+/i';
  6.  
  7.     //$regex = '/https?\:\/\/[^\" ]+/i';
  8.  
  9.    
  10.  
  11.     $regex = '/(?<!=|\]|\/)((https?|ftps?|irc):\/\/|' . '(www([0-9]{1,3})?|ftp)\.)([0-9a-z-]{1,25}' . '[0-9a-z]{1}\.)([^\s&\[\{\}\]]+)/ims';
  12.  
  13.     preg_match_all($regex, $string, $matches);
  14.  
  15.     return ($matches[0]);
  16.  
  17. }

con esta detecto las urls, solo que cuando hay un anderson falla, pero si muestra la url, pero el anderso no lo toma como parte de ella.. le ha de faltar alguna expression regular pero no soy muy bueno para eso..
no eh probado los codigos que me enviaron, lo que pasa es que si puedo extraer los ids y todo ya. solo que aparte de mostrar el id, quiero mostrar las urls todas en este formato
http://www.youtube.com/v/3KJh-WTiaF8

y si lo logro pero aun no lo logro con las que tienen el &
osea de una url como esta

http://www.youtube.com/watch?v=PsbPk...eature=branded

quiero mostrar esta

http://www.youtube.com/v/PsbPkZPKEuY
pero me muestra esta

http://www.youtube.com/v/PsbPkZPKEuY&feature=branded

y nomas agarra como link hasta donde esta el anderson.
es claro que lo que esta despues del anderson la funcion no lo toma como url.
entonces que hacer alli?
que expresion regular le falta a la funcion?

no me agarra los anderson, y el face si los agarra.
de antemano gracias XD

por cierto, la web aun no esta del todo validad en las otras partes.

posdata si ven que esta lento el ver mas es por que tambien valido si las urls existen, y asi poder mostrarla como url o video.
solo muestro el primer video
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Última edición por minombreesmm; 29/04/2013 a las 16:43
  #5 (permalink)  
Antiguo 29/04/2013, 16:45
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 9 meses
Puntos: 2237
Respuesta: Alguien de aqui tiene un foro o pagina que convierta las urls?

& = ampersand

Bueno, si puedes obtener la ID del video, es bastante fácil crear la URL como mejor prefieras, con tu ejemplo:

URL original: youtube.com/watch?v=PsbPkZPKEuY&feature=branded
ID del video: PsbPkZPKEuY
Creas la URL a tu gusto: youtube.com/v/id-del-video

Código PHP:
Ver original
  1. $url = "http://www.youtube.com/watch?v=PsbPkZPKEuY&feature=branded";
  2. $video = funcion_que_devuelve_id($url);
  3. echo "http://www.youtube.com/v/$video";

Cuál es el problema con eso?

En cuanto a la expresión regular, ya la tienes en la función que te sugerí en el mensaje anterior, sólo adapta para obtener lo que necesitas.
__________________
- León, Guanajuato
- GV-Foto
  #6 (permalink)  
Antiguo 29/04/2013, 16:55
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: Alguien de aqui tiene un foro o pagina que convierta las urls?

Cita:
Iniciado por Triby Ver Mensaje
& = ampersand

Bueno, si puedes obtener la ID del video, es bastante fácil crear la URL como mejor prefieras, con tu ejemplo:

URL original: youtube.com/watch?v=PsbPkZPKEuY&feature=branded
ID del video: PsbPkZPKEuY
Creas la URL a tu gusto: youtube.com/v/id-del-video

Código PHP:
Ver original
  1. $url = "http://www.youtube.com/watch?v=PsbPkZPKEuY&feature=branded";
  2. $video = funcion_que_devuelve_id($url);
  3. echo "http://www.youtube.com/v/$video";

Cuál es el problema con eso?

En cuanto a la expresión regular, ya la tienes en la función que te sugerí en el mensaje anterior, sólo adapta para obtener lo que necesitas.
entiendo entiendo Xd jejes
el problema es como quitar esos caracteres despues del anderson

osea
&feature=branded

podria hacer un str_replace
de eso, pero hay millones de paginas que usan el anderson..

tambien podria hacer una funcion que contara despues del anderson y borrara todo hasta donde hay un espacio.
pero se me hace que sera mas proceso que si se pone en la expresion regular.
que opinan?

lo que pasa es que en la caja de texto no solo se capturan urls de video, si no cualquier texto junto con videos y cualquier url en el orden que sea.

y la cuestion es que si el usuario mete las cosas en un orden, es que el otro usuario vea todo en el mismo orden como se lo enviaron.

no se si me explique

voy a probarlo con la expresion regular que me sugirio
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Última edición por minombreesmm; 29/04/2013 a las 17:14
  #7 (permalink)  
Antiguo 29/04/2013, 17:15
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: Alguien de aqui tiene un foro o pagina que convierta las urls?

aun no lo logro ya probe.. que dificil es esto
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #8 (permalink)  
Antiguo 29/04/2013, 17:17
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 9 meses
Puntos: 2237
Respuesta: Alguien de aqui tiene un foro o pagina que convierta las urls?

A ver, quitar ampersand y otras variables, dejando sólo la ID, es tan sencillo como:

Código PHP:
Ver original
  1. function youtubeId($url) {
  2.         $match = preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+(?=\?)|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#", $url, $matches);
  3.         if((int) $match > 0) {
  4.               $return $matches[0]; // Devuelves la ID
  5.         }
  6.         return false; // No es una ID de youtube
  7.     }
  8.  
  9. $url = "http://www.youtube.com/watch?v=PsbPkZPKEuY&feature=branded";
  10. echo "ID de Youtube: " . youtubeId($url); // PsbPkZPKEuY
__________________
- León, Guanajuato
- GV-Foto
  #9 (permalink)  
Antiguo 29/04/2013, 23:48
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: Alguien de aqui tiene un foro o pagina que convierta las urls?

Cita:
Iniciado por Triby Ver Mensaje
A ver, quitar ampersand y otras variables, dejando sólo la ID, es tan sencillo como:

Código PHP:
Ver original
  1. function youtubeId($url) {
  2.         $match = preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+(?=\?)|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#", $url, $matches);
  3.         if((int) $match > 0) {
  4.               $return $matches[0]; // Devuelves la ID
  5.         }
  6.         return false; // No es una ID de youtube
  7.     }
  8.  
  9. $url = "http://www.youtube.com/watch?v=PsbPkZPKEuY&feature=branded";
  10. echo "ID de Youtube: " . youtubeId($url); // PsbPkZPKEuY
jejes gracias, viendolo bien la opcion es mas sencilla de lo que hice,, use mucho los str_replace, dure bastante jejejs..
debo aceptarlo lo probare asi :D
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra
  #10 (permalink)  
Antiguo 30/04/2013, 09:53
 
Fecha de Ingreso: agosto-2012
Ubicación: M.
Mensajes: 2.031
Antigüedad: 11 años, 8 meses
Puntos: 52
Respuesta: Alguien de aqui tiene un foro o pagina que convierta las urls?

Cita:
Iniciado por Triby Ver Mensaje
A ver, quitar ampersand y otras variables, dejando sólo la ID, es tan sencillo como:

Código PHP:
Ver original
  1. function youtubeId($url) {
  2.         $match = preg_match("#(?<=v=)[a-zA-Z0-9-]+(?=&)|(?<=v\/)[^&\n]+(?=\?)|(?<=v=)[^&\n]+|(?<=youtu.be/)[^&\n]+#", $url, $matches);
  3.         if((int) $match > 0) {
  4.               $return $matches[0]; // Devuelves la ID
  5.         }
  6.         return false; // No es una ID de youtube
  7.     }
  8.  
  9. $url = "http://www.youtube.com/watch?v=PsbPkZPKEuY&feature=branded";
  10. echo "ID de Youtube: " . youtubeId($url); // PsbPkZPKEuY
detalladamente

Hola si es sencillo quitarla, pero
la cosa es que es una caja como esta donde el usuario pone todos los datos.

y yo capturo por ejemplo esto

mi url http://www.youtube.com/watch?v=PsbPk...eature=branded
es chida


y sale asi


mi url http://www.youtube.com/v/PsbPkZPKEuY &feature=branded
es chida


y sale asi por que el casteador de urls no toma parte de la url despues del ampersand

no solo es un problema con los videos si no con cualquier pagina que use ampersand


sabe se me ocurrio algo mejor... y es que como recibo los datos por ajax. el ampersan lo enviaba como anderson,
y lo sustituia antes de hacer el casteo de las variables, lo unico que hice mejor fui castearlo al final, y asi ya no tengo problemas con ese caracter Xd vaya a veces las cosas son tan sencillas y uno batalla jejes
:D
aun tengo otros conflictor pero alli la llevo :D
gracias
__________________
a veces creemos que es algo básico pero al profundizar nos damos cuenta que estábamos tocando solo la cola de la culebra

Etiquetas: foro
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 23:25.