我正在尝试获取外部网址网页的标题
在我看来,我使用以下脚本
<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;
}
我应该在功能数据中添加什么来获取标题和图标?
答案 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);
}
});