2013-05-06 60 views
0

我使用cURL来获取网站中使用的所有img标签的img srcs。但是网站有没有主机名指定的,就像许多名字:如何从本地img src制作一个可用的img src - PHP

<img src="/images/look.jpg" /> 
<img src="i4.ytimg.com/vi/OmliBRZUxnk/maxresdefault.jpg?feature=og" title="youtube pic" /> 

那么,如何确定哪些SRC公司将呈现PIC没有他们的任何操作,哪一个需要与该网站的预先考虑主机名(steekcoders.com)。

目前我想这一点:

$url = 'http://www.steekcoders.com'; $parse='http://'.parse_url($url, PHP_URL_HOST).'/'; $reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/"; 

foreach($imgArray as $src) 
{ 
$src=ltrim($src,"/"); if(empty($src)){ continue; } 

if(!preg_match($reg_exUrl, $src)) 
{ 
$clipouts[]=$src; $req="http://".$src; $extra=$parse.$src; 
$clipouts[] = $extra; $clipouts[] = $req; 
} 
else{ $clipouts[]=$src; { 

} 

但它不工作得非常好。我怎么去解决这个问题?

回答

0

使用PHP的parse_url函数会容易很多。它返回一个关联数组,其中包含所有找到的值。你填写缺失的值,瞧!

php > var_dump(parse_url('/abc')); 
array(1) { 
    ["path"]=> 
    string(4) "/abc" 
} 

php > var_dump(parse_url('http://a.b.c/abc')); 
array(3) { 
    ["scheme"]=> 
    string(4) "http" 
    ["host"]=> 
    string(5) "a.b.c" 
    ["path"]=> 
    string(4) "/abc" 
}