2012-08-17 34 views
-7

如何與LinkedIn,facebook等PHP中的自定義網站上的圖片和描述共享鏈接。如何在PHP中自定義網站上共享圖片和描述的鏈接

如果用戶分享任何有效的鏈接,它會顯示像facebook和linkedin等描述的圖像。

+0

你遇到問題的具體部分是什麼? – deceze 2012-08-17 07:39:26

+4

你有嘗試過嗎? – Vinay 2012-08-17 07:41:13

+0

是的,我試過,但我沒有得到像Facebook或LinkedIn。 – 2012-08-17 07:52:23

回答

3

您想了解Facebook Open Graph元標記。它們允許您編輯共享文章的呈現方式。對更多信息可以在本文http://davidwalsh.name/facebook-meta-tags

+0

我想閱讀任何網址,並在我的網站上顯示我的牆貼。 – 2012-08-17 07:50:25

+0

啊......好的,你想用fopen或curl來獲取你感興趣的頁面的HTML並解析HTML。 – 2012-08-17 07:58:09

+0

如果用戶發佈任何鏈接他們的牆壁,我在我的網站上看起來像Facebook牆或LinkedIn一樣的功能。 – 2012-08-17 08:01:58

1

中找到你需要獲得指定URL的內容,也許使用file_get_contents或一些類似的方法(例如:this)和解析該URL的內容。

讓我們試一下非常基本的例子;

$url = get_url_from_user_post($user_post); 
// get page contents (as html) 
$page_contents = file_get_contents($url); 

// search for title 
// option 1 
preg_match('~<meta\s+property="og:title"\s+content="(.*?)".*?>~um', $page_contents, $matches); 
// option 2 
preg_match("~<title>(.*)</title>~um", $page_contents, $matches); 

$page_title = trim($matches[1]); 

// search for an image 
// option 1 
preg_match('~<meta\s+property="og:image"\s+content="(.*?)".*?>~um', $page_contents, $matches); 
// option 2 
preg_match_all('~<img.*?src="(.*?)".*?>~um', $page_contents, $matches); 
if (!empty($matches)) { 
    // ... and get one of them 

而你有更多的選擇來做到這一點,獲取/解析頁面的html內容。請參閱:http://php.net/manual/en/book.dom.php,或使用PHP獲取元標記(get_meta_tags)。

1

好的,我得到的是你想得到一個用戶鏈接到的網站的圖像和基本描述。

要得到描述,最簡單的方法是使用php中的get_meta_tags函數,並使用描述。

$meta = get_meta_tags($some_url); 
//description will be stored in $meta['description'] if it was found from $some_url. 

這依賴於現場提供適當的meta標籤,對你有利,不會總是工作,所以你需要一個備份方法(如文檔標題或詞檢查HTML)或默認上描述值意味着你根本沒有得到任何東西。

要獲取網站快照,您可以依賴第三方服務,如picoshot.com或websnapr.com/,但在很多情況下可能不是最佳選擇。如果你想自己做快照,你可以這樣做,但是這個過程會很複雜,你需要對服務器和環境進行很好的控制,你可以看看this這樣的東西來讓你開始使用快照。如果您的環境是Linux,那麼該腳本將無法工作,因爲它使用Internet Explorer瀏覽器捕獲,因此您可以檢查here以獲取某些Linux解決方法。

相關問題