2011-03-14 54 views
-1

我試圖提取使用下面的代碼 香港專業教育學院網站的元數據改變了我的代碼有點PHP獲取元數據

<?php 
error_reporting(E_ALL); 
$domain='http://www.yahoo.com'; 
?> 

<h3>Reading the meta-data tags of website: <?php echo $domain; ?></h3> 

<?php 

    echo 'Read META info<br>'; 
    $tags = get_meta_tags($domain); 

    echo 'Check the result and display it.<br>'; 

    if(isset($tags)) 
     echo 'Tags is set'; 

    if (sizeof($tags) == 0){ 
    echo '<tr><td>No META information was found!</td></tr>'; 
    } 
    else 
    { 
    echo 'Metadata found !!'; 
    print_r($tags); 
    } 

?> 

但是我沒有得到任何結果。我正在運行本地WAMP服務器的這個腳本。我哪裏錯了?只是尋找關於一個頁面的非常基本的信息。

這是結果即時得到 「閱讀網站的元數據標籤:http://www.yahoo.com 閱讀META信息 檢查結果並顯示它 標籤是setMetadata發現!」。

,但沒有從print_r的輸出($標籤)

+2

試試print_r($ tags);開始。 – 2011-03-14 08:38:08

+0

我用它...沒有結果只是回聲。 – user434885 2011-03-14 09:16:28

+0

查看是否通過使用file_get_contents('http://yahoo.com')從遠程主機獲取任何數據;也許你有某種防火牆。 – 2011-03-14 10:58:46

回答

1

對我來說工作正常。也許你沒有啓用curl?你能爲我們提供你的phpinfo輸出嗎?

只需創建phpinfo.php文件用下面的代碼中:

<?php 
phpinfo(); 
?> 

如果將不會有大約捲曲的話,你需要打開你的php.ini文件,找到;extension=php_curl.dll線,並取消它(刪除在;字符)

然後重新啓動你的Apache

+0

甚至有一個最簡單的方法來檢查curl是否啓用。在同一個文件中,用'var_dump(curl_version())'替換'phpinfo()'。如果會出現一些錯誤,這意味着你沒有啓用:) – mbajur 2011-03-14 08:54:16

+0

curl沒有啓用,所以我啓用它,但仍然沒有結果,我也試過print_r($ tags);但仍然沒有結果:/ – user434885 2011-03-14 09:15:40

+0

請在文件開始處(在<?php'後面)添加一個'error_reporting(E_ALL);'行並檢查是否沒有錯誤 – mbajur 2011-03-14 09:18:44

0

它應該工作得很好,用print_r($tags)嘗試調試一行接一行。 無論如何,如果它讀好,那麼你應該能夠得到例如像這樣的關鍵字:

$kws = explode(",",$meta['keywords']); 
for ($i=0;$i<count($kws);$i++) 
{ 
    $kws[$i] = ltrim($kws[$i]); 
    $kws[$i] = rtrim($kws[$i]); 
    echo($kws[$i]); 
} 
+0

@bajki是對的,捲曲必須啓用。 – Ervin 2011-03-14 08:45:34

+0

我應該如何實現這個代碼? – user434885 2011-03-14 09:32:03

0

對於yahoo.com和google.com你不會得到任何meta標籤。我也嘗試過,但我不知道爲什麼,可能是這個網站作爲搜索引擎。

<?php 
$tags = get_meta_tags('http://sitename.com/'); 

echo $tags['keywords'];  
echo $tags['description']; 
?> 

該代碼適用於其他提到元標記的網站。