Holen Sie sich eine URL aus einem String
Für eine kleine Weile jetzt, ich habe die Suche nach einem code, um URLs aus einem string mit PHP. Ich bin im Grunde versucht, um eine Verkürzte URL aus einer Nachricht, und dann später einen HEAD-request zu finden, der eigentliche link.
Jemand einen code zurückgibt, die URLs von strings?
Vielen Dank im Voraus.
Bearbeiten für Ghost Dog:
Hier ist ein Beispiel, was ich bin Parsen:
$test = "I am testing this application for http://test.com YAY!";
Und hier ist die Antwort, die ich bekam, dass es gelöst:
$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'];
}
Siehe Antwort für die Details.
- wie zu zeigen ein Beispiel von dem, was Sie analysieren,
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dieser code kann hilfreich sein (siehe MadTechie neueste post):
http://www.phpfreaks.com/forums/index.php/topic,245248.msg1146218.html#msg1146218
Etwas wie:
Müssen Sie die Melodie der regexp genau das zu bekommen, was Sie wollen.
Um die URL aus, erwägen, etwas so einfaches wie:
curl -I http://url.com/path | grep Location: | awk '{print $2}'