PHP 框架哪个更好一点?CodeIgniter 怎么样?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 框架哪个更好一点?CodeIgniter 怎么样?相关的知识,希望对你有一定的参考价值。

之前用过Cakephp,现在想换CodeIgniter试试,不知道怎么样,有什么好的推荐一下么?简单介绍一下

PHP框架有很多,各有其优点。
CodeIgniter简单,易用,效率特高的超好用框架,尤其是现在3.X之后更是将效率,易用,稳定做到了极致。
参考技术A 都是模仿 rails 的。CI好一些。

CodeIgniter:帮助从网页获取元标记的类/库?

【中文标题】CodeIgniter:帮助从网页获取元标记的类/库?【英文标题】:CodeIgniter: A Class/Library to help get meta tags from a web page? 【发布时间】:2011-01-17 10:18:58 【问题描述】:

我正在使用 codeigniter。我想我使用哪个 php 框架并不重要。

但在我编写自己的课程之前,是否已经编写了另一个课程,允许用户获取任何站点的页面标题和元标记(关键字、描述)……如果有的话。

任何类型的 PHP 类都可以做到这一点。

谢谢大家

【问题讨论】:

【参考方案1】:

使用 PHP 的 curl 库。它可以从 web 中拉取其他页面并将它们作为字符串获取,然后您可以使用正则表达式解析字符串以找到页面的标题和元标记。

【讨论】:

【参考方案2】:

您可以使用 get_meta_tags 从远程页面获取所有元标记 - http://ca3.php.net/get_meta_tags

这个页面有一个类来获取页面和描述,他们也在使用get_meta_tags - http://www.emirplicanic.com/php/get-remote-page-title-with-php.php

您应该能够将两者的位组合起来以获得所需的一切。

【讨论】:

【参考方案3】:

See this please. 这是获取页面元标记并做更多事情的通用类。看看你是否可以在 codeigniter 库中添加它。谢谢

【讨论】:

【参考方案4】:

你应该看看这个类:PHP Simple HTML DOM 它是这样工作的:

include('simple_html_dom.php');
$html = file_get_html('http://www.codeigniter.com/');

echo $html->find('title', 0)->innertext; // get <title>

echo "<pre>";
foreach($html->find('meta') as $element)
       echo $element->name . " : " . $element->content  . '<br>'; //prints every META tag

echo "</pre>";

【讨论】:

这个我知道但是忘记了,我什至搜索并找到了codeigniter的定制版本:thephpx.com/2009/10/25/…【参考方案5】:

使用 DOM/xpath

libxml_use_internal_errors(true);
$c = file_get_contents("http://url/here");
$d = new DomDocument();
$d->loadHTML($c);
$xp = new domxpath($d);
foreach ($xp->query("//meta[@name='keywords']") as $el) 
    echo $el->getAttribute("content");

foreach ($xp->query("//meta[@name='description']") as $el) 
    echo $el->getAttribute("content");

【讨论】:

【参考方案6】:

试试这个:

    libxml_use_internal_errors(true);
    $urlDecoded = $this->input->post('url');
    $c = file_get_contents($urlDecoded);
    $d = new DomDocument();
    $d->loadHTML($c);
    
    $metaTags = [
        'title' => '',
        'description' => '',
        'image' => '',
        'canonical' => '',
        'url' => '',
        'author' => '',
        'availability' => '',
        'keywords' => '',
        'og:description' => '',
        'og:determiner' => '',
        'og:image' => '',
        'og:image:height' => '',
        'og:image:secure_url' => '',
        'og:image:type' => '',
        'og:image:width' => '',
        'og:locale' => '',
        'og:locale:alternate' => '',
        'og:site_name' => '',
        'og:title' => '',
        'og:type' => '',
        'og:url' => '',
        'price' => '',
        'priceCurrency' => '',
        'source' => '',
    ];

    foreach ($d->getElementsByTagName('meta') as $meta) 
        $property = $meta->getAttribute('property');
        $content = $meta->getAttribute('content');
        if (strpos($property, 'og') === 0) 
            $metaTags[$property] = $content;

            if ($property === 'og:title') $metaTags['title'] = $property;
            if ($property === 'og:description') $metaTags['description'] = $property;
            if ($property === 'og:image') $metaTags['image'] = $property;
        
    
    $metaTags['canonical'] = $urlDecoded;
    $metaTags['url'] = $urlDecoded;

【讨论】:

以上是关于PHP 框架哪个更好一点?CodeIgniter 怎么样?的主要内容,如果未能解决你的问题,请参考以下文章

Smarty集成到CodeIgniter框架中

哪个是 codeigniter 的最佳 PHP ORM? [关闭]

CodeIgniter:帮助从网页获取元标记的类/库?

要使用codeigniter框架还是标准的php? [关闭]

php优秀框架codeigniter学习系列——安装,配置

哪个php框架适合共享主机? [关闭]