0

これは私が取り組んでいるコードです:

<?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>';
    }
?>

私は特にこの行にこだわっています。タイトルがアンカーの名前とリンクの両方になるようにしようとしています(クリックすると上部にスクロールします)。これは私が試したもので、うまくいきません。私の構文のどこが間違っているのか教えてください。

echo '<h2><a name="'.$title'" href="#'.$title'">'.$title.'</a><span class="line"></span></h2>';
4

6 に答える 6

3

現在、自分自身を対象とするリンクを作成しています。

クリックしたときにリンクがドキュメントの上部に移動するようにするには、次のようにリンクします'#'

<a href="#" name="<?php echo $title ?>"><?php echo $title ?></a>

また、HTML 5 の要素でnameは非推奨です<a/>id代わりに使用してください:

<a href="#" id="<?php echo $title ?>"><?php echo $title ?></a>
于 2013-07-15T14:27:10.000 に答える
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>
于 2013-07-15T14:37:39.990 に答える
1

あなたがしたいことが単にページのトップに行くだけなら、アンドレの答えはあなたの問題を解決するはずです. ただし、id が $title の値に設定されている特定のセクションに移動したい場合は、これを試すことができます...

<a href="#<?php echo $title ?>" name="<?php echo $title ?>"><?php echo $title ?></a>

このようにして、リンクがクリックされると、タイトルと等しい ID を持つ正確な要素にジャンプします (上部にある場合とない場合があります)。これがあなたが達成したいことだと私は信じています。

于 2013-07-15T14:39:30.900 に答える
0

ドットが2つ欠けています。

これを試して:

echo '<h2><a name="'.$title.'" href="#'.$title.'">'.$title.'</a><span class="line"></span></h2>';
于 2013-07-15T14:27:52.660 に答える
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>";

これははるかにクリーンで、ドットまたは終了/開始引用符が欠落する可能性が低くなります。

于 2013-07-15T14:30:55.937 に答える
-1
echo '<h2><a name="'.$title.'" href="#'.$title.'">'.$title.'</a><span class="line"></span></h2>';

$title の後にドットがありません

また、あなたのリンクは自分自身にリンクしています。別のアンカーを定義してから、それにリンクする必要があります。

于 2013-07-15T14:29:13.573 に答える