LinkedIn や Facebook などの PHP のカスタム Web サイトで画像と説明付きのリンクを共有する方法。
ユーザーが有効なリンクを共有すると、facebook や linkedin などの説明付きの画像が表示されます。
Facebook Open Graph のメタ タグについて読みたいと思っています。共有投稿の表示方法を編集できます。詳細については、この記事http://davidwalsh.name/facebook-meta-tagsを参照してください。
file_get_contents
または同様の方法 (例: this )を使用して、指定された URL のコンテンツを取得し、この 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
)。
さて、私が得ているのは、ユーザーがリンクしているサイトの画像と基本的な説明を取得したいということです。
説明を取得するには、php で get_meta_tags 関数を使用し、説明を使用するのが最も簡単な方法です。
$meta = get_meta_tags($some_url);
//description will be stored in $meta['description'] if it was found from $some_url.
これは、サイトが適切なメタ タグを提供することに依存していますが、これは常にあなたに有利に働くとは限りません。そのため、バックアップ方法 (ドキュメント タイトルや html の単語のチェックなど) や、そうでない場合のデフォルトの説明値が必要になります。何でも取得します。
Web サイトのスナップショットを取得するには、picoshot.com や websnapr.com/ などのサード パーティのサービスを利用できますが、多くの場合、最適なオプションではない可能性があります。自分でスナップショットを作成したい場合は、それを行うこともできますが、プロセスは複雑になります。サーバーと環境を十分に制御する必要があります。このようなものをチェックして、スナップショットを開始することができます. Linux などの環境を使用している場合、そのスクリプトは Internet Explorer ブラウザー キャプチャを使用するため機能しません。Linux の回避策については、こちらを参照してください。