2012-04-23 44 views
0

私はページのURLからウェブサイトのURLを抽出する必要があります。 は例えば、これは私のPHPコードです:ページのURLからウェブサイトのURLを抽出する方法は?

<?php 

$pageA = "http://stackoverflow.com/questions/tagged/php"; 
$pageB = "https://www.google.it/search?channel=cs&ie=UTF-8&q=php+download"; 
$pageC = "http://www.facebook.com/ladygaga"; 
$pageD = "www.youtube.com"; 
$pageE = "yahoo.com"; 

?> 

と私は、これらのページのURLから

stackoverflow.com 
www.google.it 
www.facebook.com 
www.youtube.com 
yahoo.com 

を抽出する必要があります。

+2

http://php.net/manual/en/function.parse-url.phpまたは[PHPでURLから解析ドメイン]の正規表現 – ZiTAL

+1

が重複する可能性を使用します(http:/ /stackoverflow.com/questions/276516/parsing-domain-from-url-in-php) – JJJ

答えて

1

parse_urlです。リンクされたマニュアルから:

この関数は、URLを解析し、存在するURLのさまざまなコンポーネントのいずれかを含む連想配列を返します。

例:

<?php 
$url = 'http://username:[email protected]/path?arg=value#anchor'; 

print_r(parse_url($url)); 
?> 

ウィル出力:他のフィールドを認識できないparse_url何のスキームが存在しない

Array 
(
    [scheme] => http 
    [host] => hostname 
    [user] => username 
    [pass] => password 
    [path] => /path 
    [query] => arg=value 
    [fragment] => anchor 
) 

更新

ケース。この問題を回避するには、このケースをキャッチし、デフォルトのスキームを追加して再解析する必要があります。コードは次のようなものになります。

<?php 
$url = 'yahoo.com/help'; 
$fields = parse_url($url); 

if(empty($fields['scheme'])) { 
    $fields = parse_url('http://' . $url); 
} 

print_r($fields); 
?> 
+0

この例では動作しません:it.yahoo.com/ladygaga – xRobot

+0

@xRobot、回避策で私の答えを更新しました問題に – Vikas

関連する問題