Totalmente de acuerdo @masterpuppet, sólo hace falta una buena expresión regular que saque la URL de la cadena, porque tiene muchos requerimientos y yo no pude con todos. Cuando empiezan con www http:// muy fácil. Pero que hacer cuando la URL es por ejemplo:
Cita: miweb.wordpress.com/2011/06/30/blablabla/
Confunde un poco el tema de esa URL y yo estoy apenas en pañales con expresiones regulares, aunque me defiendo un poco.
En todo caso ya se le dejó toda la información y ayudé a
humanista lo más que pude.
Saludos.
Edit: Esto llevo hasta el momento y funciona, pero no le he hecho todas las pruebas. Si alguien quiere aportar algo para mejorar bienvenido sea.
Código PHP:
Ver original<?php
function sacarURL($str) {
if (preg_match('@(www\.|http://)[^\s|/]*|[a-z0-9]{3,}\.[a-z0-9]{3,}\.[a-z]{2,}@i', $str, $m)) { /*Usada función de gustavo dot andriuolo
http://php.net/manual/es/function.parse-url.php*/
if ($bits[0] == 'http:' || $bits[0] == 'https:') {
$domainb = $bits[2];
} else {
$domainb = $bits[0];
}
$idz -= 3;
if (strlen($bits[($idz + 2)]) == 2) { $url = $bits[$idz] . '.' . $bits[($idz + 1)] . '.' .
$bits[($idz + 2)];
} else if (strlen($bits[($idz + 2)]) == 0) { $url = $bits[($idz)] . '.' . $bits[($idz + 1)];
} else {
$url = $bits[($idz + 1)] . '.' . $bits[($idz + 2)];
}
return $url;
} else {
return false;
}
}
$cadena = "texto blablabla y texto miweb.wordpress.com/2011/06/30/blablabla/ y mas texto";
echo sacarURL($cadena); //Resultado wordpress.com