2011-12-28 11 views
0

私はこのコードを持って取得します。PHP - メタタグは

<?php 

$LF = 'links.txt'; 
$Rfp = fopen($LF, 'r'); 

while(!feof($Rfp)) 
{ 
    $links = fgets($Rfp); 
    $tags = get_meta_tags($links); 

    if ($tags['description'] == "") 
     echo "No META Description Found"; 
    else 
     echo $tags['description']; 
} 

fclose($Rfp); 

?> 

私links.txtは、行ごとに5000のURL 1のリストを持っています。私は

Warning: get_meta_tags(http://www.1saleaday.com) [function.get-meta-tags]: failed to open stream: php_network_getaddresses: getaddrinfo failed: No such host is known. in F:\xampp\htdocs\mte.php on line 10 
No META Description Foundhttp://www.1stopflorists.com 
Warning: get_meta_tags() [function.get-meta-tags]: php_network_getaddresses: getaddrinfo failed: No such host is known. in F:\xampp\htdocs\mte.php on line 10 

このスクリプトを実行したときに、私は私が私のlinks.txtファイルを持っているリンク、すべてのMETA説明を持っていることを確信して、私のファイル内のすべてのURLのために、このエラーが発生します。それで、どこで失敗したのですか?ご案内ください。

+0

さらに問題があるのは、PHPが 'meta'要素を持たないページではなく、ページを取得する際に問題があることです。 PHPが(get_meta_tags'を介して)古い[URL](http://google.com)をフェッチし、それが動作するかどうかを確認するスクリプトを設定します。 – Alex

+0

はい。 URLを '$ tags = get_meta_tags( 'http://www.1saleaday.com');でハードコードすると、うまく動作します。それは私に「1セール・ア・デー、毎日1つの大きな取引、毎日の取引、加入」という記述を正しく取り出す。それは、私がfgetsを使ってファイルから行ごとにそれを読み込もうとする時です。 –

答えて

1

php_network_getaddresses:getaddrinfoは失敗しました:そのようなホストは

を知られていないどうやら、PHPは、ページをロードすることができません。おそらくリンクに適切なフォーマットがないのでしょうか?

簡単なテストでは、私がget_meta_tags('http://domain.com http://another-domain.com');を試してみると、改行に何か問題があると思われますか?ここで (?WindowsのUnixの行末VS)

+0

あなたは正しいかもしれません。私はWindows XP SP2を使用しています。さて、私の行末が正しいことをどうやって確認するのですか? –

+0

私も '$ tags = trim(get_meta_tags($ l));'を試みましたが、助けがありませんでした。 –

+0

'$ tags = get_meta_tags($ links);の代わりに、' echo "を実行します。URLをロードします:$ links
"; $ tags = get_meta_tags($ links); echo "
" エラーが発生する直前にどのURLがロードされているかを確認する必要があります。正しい場合はURLは1つではなく、少なくとも2つになります。 –

4

が働いている私の例です: links.txtは、各行の後にスペースがないと終わりがないブレーク

http://www.site1.com 
http://www.site2.com 
http://www.site2.com/page1 

この例のように探していますファイル

<?php 

$LF = 'links.txt'; 
$Rfp = fopen($LF, 'r'); 

while(!feof($Rfp)) 
{ 
    $links = fgets($Rfp); 
    echo "<br>"; echo "<font color=\"red\">Load URL: $links </font>"; $tags = get_meta_tags($links); echo "<br>"; 

    if ($tags['description'] == "") 
    echo "No META Description Found"; 
    else 
     echo "<br>"; 
    echo "<b>Description</b> - "; 
    echo $tags['description']; 
    echo "<br>"; 

    if ($tags['keywords'] == "") 
     echo "No META Keywords Found"; 
    else 
     echo "<br>"; 
    echo "<b>Keywords</b> - "; 
    echo $tags['keywords']; 
    echo "<br>"; 
} 

fclose($Rfp); 

?> 

の結果はよく見て、あなたが必要なエラー

2

答えは含ま警報出力の右ではありません...ノートURLの後にスペース:

警告:get_meta_tags(http://www.example.com)[function.get-メタタグ]

あなたが追加した場合:

$リンクは=($リンク)トリム;

コードが機能し始めます。

関連する問題