Bir süre için şimdi ben PHP kullanarak bir dize URL Çıkış almak için bir kod arıyor oldum. Ben temelde bir mesajın bir Kısaltılmış URL almak için çalışıyor, ve daha sonra gerçek bağlantı bulmak için bir HEAD isteği yapmak ediyorum.
Herkes dizeleri URL'leri döndüren herhangi bir kodu var mı?
Teşekkürler gelişmiş.
Edit for Ghost Dog:
İşte ayrıştırma ben ne bir örnek:
$test = "I am testing this application for http://test.com YAY!";
Ve burada ben bunu çözmüş var ki yanıttır:
$regex = '$\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]$i';
preg_match_all($regex, $string, $result, PREG_PATTERN_ORDER);
$A = $result[0];
foreach($A as $B)
{
$URL = GetRealURL($B);
echo "$URL<BR>";
}
function GetRealURL( $url )
{
$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_ENCODING => "",
CURLOPT_USERAGENT => "spider",
CURLOPT_AUTOREFERER => true,
CURLOPT_CONNECTTIMEOUT => 120,
CURLOPT_TIMEOUT => 120,
CURLOPT_MAXREDIRS => 10,
);
$ch = curl_init( $url );
curl_setopt_array( $ch, $options );
$content = curl_exec( $ch );
$err = curl_errno( $ch );
$errmsg = curl_error( $ch );
$header = curl_getinfo( $ch );
curl_close( $ch );
return $header['url'];
}
Ayrıntılar için cevap bakın.