2013-05-06 67 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" 
}