从外部网址页面获取标题

时间:2014-03-10 18:38:33

标签: jquery ajax yii

我正在尝试获取外部网址网页的标题

在我看来,我使用以下脚本

 <script>
       $(document).ready(function(){                     
            $(function(){
                $("#grabUrl").click(function(e){
                    $.ajax({
                        url: "<?php echo Yii::app()->createUrl('post/geturl', array('url' => 'http://bbc.co.uk)); ?>",


                    success: function(data) {


                    // How can I get the content of the title tag? or the favicon ?                         }   
                });
            });
        });
    });
</script>

我的控制器动作只是

public function actionGetUrl($url)
{
    $str = file_get_contents($url);
    return $str;


}

我应该在功能数据中添加什么来获取标题和图标?

2 个答案:

答案 0 :(得分:2)

我建议使用:http://sourceforge.net/projects/simplehtmldom/files/

$html = file_get_html('http://www.google.com/');
$title = $html->find('title', 0)->innertext;
$html->clear(); //important

echo $title;

答案 1 :(得分:0)

如果你只想传递标题,我宁愿写这个php, 确定你可以在js中做同样的事情

public function actionGetUrl($url)
{
    $str = file_get_contents($url);
    // index of the opening-tag + the length of needle
    $openTag = strpos($str,"<title>") +7;
    // index of the ending tag
    $endTag = strpos($str,"<\/title>");
    // extract the bit between
    $title = substr($str, $openTag, ($endTag - $openTag));

    return $title;
}

这未经过测试,但你应该知道如何提取信息,你应该建立一些错误处理

欢呼声

更新,同样在js:

$.ajax({
    url: "<?php echo Yii::app()->createUrl('post/geturl', array('url' => 'http://bbc.co.uk)); ?>",
    success: function(data) {
        strang= String(data);
        openTag = strang.indexOf("<title>") +7 ;
        endTag = strang.indexOf("<\/title>");
        title = strang.substring(openTag,endTag)
        alert(title);
    }   
});