PHP将变量插入到链接href和name中

时间:2013-07-15 14:24:42

标签: php wordpress

这是我正在使用的代码:

<?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(' & ', ' &amp; ', $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>';

6 个答案:

答案 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

后你缺少点数

此外,您的链接链接到他们自己。您需要定义一个单独的锚点,然后链接到它。