PHP / jQuery - 获取html标签<title> xxx </title>内容

时间:2010-12-04 03:26:56

标签: php jquery

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SOMETITLE</title>
</head>

<body>
<a href="http://www.facebook.com/sharer.php?u=<?php echo $url ?>&t=XXX">click</a>
</body>
</html>

我想使用php / jQuery获取<title></title>下的内容并将其放在<a href="http://www.facebook.com/sharer.php?u=<?php echo $url ?>&t=XXX">的XXX处,该怎么做?

更新了2

<?php

$url = (!empty($_SERVER['HTTPS'])) ? "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] : "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

?>

<div id="language">
 <ul>
  <li class="last">
   <span><a id="block-header-facebook" href="http://www.facebook.com/sharer.php?u=<?php echo $url ?>&t=link"><img src="/home/images/icon/facebook.jpg" /></a></span><span><a href="#"><img src="/home/images/icon/twitter.jpg" /></a></span></li>
 </ul>
</div>

<script>
$('#block-header-facebook').attr('href').replace("link", "hi");
</script>

谢谢你

4 个答案:

答案 0 :(得分:0)

您可以在此页面使用一个简单的功能

http://www.phpro.org/examples/Get-Text-Between-Tags.html

答案 1 :(得分:0)

或使用JavaScript:

var link = document.getElementsByTagName("a")[0].href;
link = link.replace(/&t=.+$/, "&t=" + document.title);
document.getElementsByTagName("a")[0].href = link;

答案 2 :(得分:0)

使用jQuery(只需使用id或类更改选择器$(“a”)更具体):

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>SOMETITLE</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
<script type="text/javascript">
$(function() { 
    $("a").each(function() { 
        $(this).attr("href", 
             $(this).attr("href").replace("XXX", $("html head title").text())
        ); 
    });
});
</script>
</head>

<body>
<a href="http://www.facebook.com/sharer.php?u=<?php echo $url ?>&t=XXX">click</a>
</body>
</html>

对于Update 2,更改脚本元素:

<script type="text/javascript">
$('#block-header-facebook').each(function() {
    $(this).attr('href', $(this).attr('href').replace("link", document.title));
});
</script>

顺便提一下,我也建议使用Ralph的服务器方法(只有在需要在客户端上进行时才使用此方法)。

添加推荐(参见Ralph评论)

将a-tag和脚本更改为:

<a id="block-header-facebook" href="http://www.facebook.com/sharer.php?u=<?php echo $url ?>">

<script type="text/javascript">
$('#block-header-facebook').each(function() {
    $(this).attr('href', $(this).attr('href') + "&amp;t=" + escape(document.title));
});
</script>

不易出错的代码,我也会这样做。

答案 3 :(得分:0)

<?php
    $title = 'SOMETITLE';
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $title ?></title>
</head>

<body>
<a href="http://www.facebook.com/sharer.php?u=<?php echo $url,'&t=',urlencode($title); ?>">click</a>
</body>
</html>

我认为如果可以,最好在服务器端执行此操作。客户端计算量减少,JS依赖性/跨浏览器问题减少,没有“滞后时间”。

在此示例中不需要Urlencoding,但如果您的标题中包含空格和其他奇怪的字符,则会是这样。