我想在字符串中搜索url并将它们保存到数组中。
这似乎很容易,但我找不到这样做的方法。我认为它可能类似于使用preg_replace?
$myarray = preg_replace(
"/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",
null, $input)
例如我的输入字符串是
$input = "
blah blah blah https://www.google.com
blah blah blah https://www.yahoo.com
blah blah blah http://stackoverflow.com"
最后,结果应该是数组中匹配的三个链接的值。
$myarray[0] = "https://www.google.com"
$myarray[1] = "https://www.yahoo.com"
$myarray[2] = "https://stackoverflow.com"
我希望你理解我的愿望,如果你有什么不清楚的话,我很抱歉。
答案 0 :(得分:2)
使用preg_match而不是preg_replace
preg_match(
"/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",
$input, $matches);
print_r($matches[0]);
更新:
preg_match只会产生单一匹配。
要匹配所有匹配项,请使用preg_match_all