この
function getUrls($string)
{
$regex = '/https?\:\/\/[^\" ]+/i';
preg_match_all($regex, $string, $matches);
return ($matches[0]);
}
$urls = getUrls($string);
print_r($urls);
または
を試してみてください。
$string = "The text you want to filter goes here. http://google.com, https://www.youtube.com/watch?v=K_m7NEDMrV0,https://instagram.com/hellow/";
preg_match_all('#\bhttps?://[^\s()<>]+(?:\([\w\d]+\)|([^[:punct:]\s]|/))#', $string, $match);
echo "<pre>";
print_r($match[0]);
echo "</pre>";
これは、次のような出力を提供します
$str = '<a href="http://foobar.com"> | Hello world Im a http://google.fr | Did you mean:http://google.fr/index.php?id=1&b=6#2310';
$pattern = '`.*?((http|ftp)://[\w#$&+,\/:;[email protected]]+)[^\w#$&+,\/:;[email protected]]*?`i';
if (preg_match_all($pattern,$str,$matches))
{
print_r($matches[1]);
}
それは
「i」修飾子を追加することで、大文字と小文字を区別しないようにしたいかもしれません。すなわち、 '...#i'' – MrWhite
URLの中には、クエリ文字列にカンマを使用するものがあります。 – relipse
@aampudia:非常に良いアプローチです。しかし、プロトコルなしでURLを見つける簡単な方法はありますか? 「あなたがフィルタリングしたいテキストはwww.google.de、www.youtube.com」になります。 – Marco