我正在尝试使用PHP preg_match_all列出字符串的所有图像URL。
图像模式如下:
1. //c1.site.com/5/2421/38306891313_ce7844189b_n.jpg
2. \/\/c2.site.com\/2421\/24574382628_9a2af39e82_h.jpg
我能够提取以下结果:
m/5/2421/38306891313_ce7844189b_n.jpg // 'm' seems to be the end of .com?
但是我不确定如何包含子域名,域名和.com:
preg_match_all('/([-a-z0-9_\/:.])\/([-a-z0-9_\/:.])\/([-a-z0-9_\/:.]+\.(jpg))/i', $data, $matches);
foreach($matches[0] as $image){
echo $image.'<br/>';
}
preg_match_all('/([-a-z0-9_\/:.])\\/([-a-z0-9_\/:.])\\/([-a-z0-9_\/:.]+\.(jpg))/i', $data, $matches);
foreach($matches[0] as $image){
echo $image.'<br/>';
}
答案 0 :(得分:1)
您可以改为使用parse_url
:
<?php
$string = "//c1.site.com/5/2421/38306891313_ce7844189b_n.jpg";
print_r(parse_url($string));
?>
哪个收益
Array
(
[host] => c1.site.com
[path] => /5/2421/38306891313_ce7844189b_n.jpg
)