Foros del Web » Programando para Internet » PHP »

expresiones regulares php

Estas en el tema de expresiones regulares php en el foro de PHP en Foros del Web. Hola, quisiera saber como hacer para convertir a URL "NO a link" un texto ingresado por ejemplo si se ingresa un dato que si http://www.google.com ...
  #1 (permalink)  
Antiguo 17/03/2012, 20:26
 
Fecha de Ingreso: septiembre-2011
Mensajes: 480
Antigüedad: 8 años, 4 meses
Puntos: 18
expresiones regulares php

Hola, quisiera saber como hacer para convertir a URL "NO a link" un texto ingresado por ejemplo si se ingresa un dato que si http://www.google.com, ya eso es una URL completa, pero si se ingresa www.google.com...como se le agrega el http://....o si es google.com y no tiene ni el http:// ni el www, agregarselo!

y si no es una URL o sea si tiene espacios en blancos!...ps convertir eso a una URL de busqueda de google!...como se puede hacer todo eso con expresiones regulares PHP? gracias
  #2 (permalink)  
Antiguo 17/03/2012, 21:46
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 8 años, 6 meses
Puntos: 793
Respuesta: expresiones regulares php

Te dejo un código muy rápido que hice y hay que optimizarlo y mejorarlo:

Código PHP:
Ver original
  1. <?php
  2.  
  3. $str = 'buscar en google';
  4. $url = '';
  5.  
  6. if (preg_match('@^http://www[^\s][email protected]', $str, $m)) { //si empiezan con http://www
  7.     $url = $m[0];
  8. } else if (preg_match('@^http://([^\s].+)[email protected]', $str, $m)) { //si empiezan con http://
  9.     $url = 'http://www.' . $m[1];
  10. } else if (preg_match('@^www\.[^\s][email protected]', $str, $m)) { //si empiezan con www.
  11.     $url = 'http://' . $m[0];
  12. } else if (preg_match('@^[a-z]+\.[a-z]{2,3}(\.[a-z]{2,3})[email protected]', $str, $m)) { //si es forosdelweb.com solo
  13.     $url = 'http://www.' . $m[0];
  14. } else {
  15.     $url = 'http://www.google.com/q=' . urlencode($str); //Sino la url de búsqueda en google
  16. }
  17.  
  18. echo $url;

Tal vez con otras funciones de url se pueda mejorar más y por lo menos te debe dar una idea de como solucionar tu problema.

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; 17/03/2012 a las 23:48

Etiquetas: expresiones, regulares
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:51.