这是我正在使用的代码:
<?php
$rss = new DOMDocument();
$rss->load('http://hugeriver.wordpress.com/feed/');
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('encoded')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
);
array_push($feed, $item);
}
$limit = count($feed);
for($x=0;$x<$limit;$x++) {
$title = str_replace(' & ', ' & ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$description = $feed[$x]['desc'];
$date = date('l F d, Y', strtotime($feed[$x]['date']));
echo '<h2><a name="test">'.$title.'</a><span class="line"></span></h2>';
echo '<small><em>Posted on '.$date.'</em></small></p>';
echo '<p>'.$description.'</p>';
}
?>
我特意被这条线困住了。我试图这样做,所以标题既是ancor的名称和链接(所以当点击它滚动到顶部)。这是我尝试过的不起作用。任何人都可以告诉我我的语法有什么问题吗?
echo '<h2><a name="'.$title'" href="#'.$title'">'.$title.'</a><span class="line"></span></h2>';
答案 0 :(得分:3)
您目前正在创建一个定位自己的链接。
如果您希望链接在点击时转到文档顶部,只需链接到'#'
:
<a href="#" name="<?php echo $title ?>"><?php echo $title ?></a>
此外,name
is deprecated on <a/>
elements in HTML 5。请改用id
:
<a href="#" id="<?php echo $title ?>"><?php echo $title ?></a>
答案 1 :(得分:1)
<a href="#" ID="<?php echo htmlentities($title, ENT_QUOTES); ?>">
<?php echo htmlentities($title, ENT_NOQUOTES); ?></a>
为什么每个人都忘记htmlentities()
,尤其是属性?
为什么使用$title
作为#target
?当$title
是带有空格和标点符号的变量不适合#target
练习时...为什么不使用md5($title)
,因为您动态生成页面?像:
<a href="#" ID="<?php echo htmlentities(md5($title), ENT_QUOTES); ?>">
<?php echo htmlentities($title, ENT_NOQUOTES); ?></a>
以及稍后链接到它:
<a href="#<?php echo htmlentities(md5($title), ENT_QUOTES); ?>">
Go to <?php echo htmlentities($title, ENT_NOQUOTES); ?>!</a>
答案 2 :(得分:1)
安德烈的回答应该可以解决您的问题,如果您想要做的只是转到页面顶部。但是如果你想转到id设置为$ title值的特定部分,那么你可以试试这个......
<a href="#<?php echo $title ?>" name="<?php echo $title ?>"><?php echo $title ?></a>
这样,当点击链接时,它将跳转到ID等于title的确切元素(可能在顶部,也可能不在顶部)。我相信这就是你想要实现的目标。
答案 3 :(得分:0)
有两个缺失的点。
试试这个:
echo '<h2><a name="'.$title.'" href="#'.$title.'">'.$title.'</a><span class="line"></span></h2>';
答案 4 :(得分:0)
尝试这种语法
echo "<h2><a name=\"$title\" href=\"#$title\">$title</a><span class=\"line\"></span></h2>";
或
echo "<h2><a name='$title' href='#$title'>$title</a><span class='line'></span></h2>";
这样更清晰,错过点或关闭/打开报价的可能性更小。
答案 5 :(得分:-1)
echo '<h2><a name="'.$title.'" href="#'.$title.'">'.$title.'</a><span class="line"></span></h2>';
$ title
后你缺少点数此外,您的链接链接到他们自己。您需要定义一个单独的锚点,然后链接到它。