php - 从 url 中获取元描述、标题和图像,如 facebook 链接共享

标签 php arrays function metadata output

my code is

       function getTitle($Url){
            $str = file_get_contents($Url);
            if(strlen($str)>0){
                preg_match("/\<title\>(.*)\<\/title\>/",$str,$title);
                return $title[1];
            }
            else
            {
                return false;
            }
        }
        function getMetas($Url){
            $str = file_get_contents($Url);
            if(strlen($str)>0){
             //   preg_match("/\<title\>(.*)\<\/title\>/",$str,$title);
               preg_match("/<meta name=\"description\" content=\"(.*?)\"/",$str,$title);
              //  preg_match( '<meta name="description".*content="([^"]+)">siU', $str, $title);
                return $title[1];
            }
             else
            {
                return false;
            }
        }

        //Example:
        $url=$_POST['url'];
        echo getTitle($url);
        echo "<br><br>";
        echo getMetas($url);

这不会显示所有 url 的结果,例如 http://google.com

最佳答案

为什么要使用正则表达式来解析 <meta>标签?

PHP 有一个内置的函数来解析 信息,它被称为 get_meta_tags()

插图:

<?php
$tags = get_meta_tags('http://www.stackoverflow.com/');
echo "<pre>";
print_r($tags);

OUTPUT:

Array
(
    [twitter:card] => summary
    [twitter:domain] => stackoverflow.com
    [og:type] => website
    [og:image] => http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6
    [og:title] => Stack Overflow
    [og:description] => Q&A for professional and enthusiast programmers
    [og:url] => http://stackoverflow.com/
)

如您所见,标题图像描述 正在被解析,这是您真正想要的。

关于php - 从 url 中获取元描述、标题和图像,如 facebook 链接共享,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23165820/

相关文章:

c++ - 检测 C++ 控制台中的功能键。

php - 谁能帮我找到php中基于日期范围的插入查询的问题

php - SQL:在二维正方形和圆形中搜索最近的

php - json_decode 无法读取以 json 格式存储数据的文本文件

php - 如何映射具有重复值的两个数组?

javascript - jquery/javascript - 从 onComplete 属性运行两个函数

php - 使用 JS 扩展表单字段

c - 我需要帮助解决这个 C 代码,请

数组和子数组上的 Javascript 递归

javascript - 如何将这两个按钮功能合并为一个,例如开/关开关