0

我正在使用 CodeIgniter 的锚标记来生成链接

这是我在视图中使用的代码:

<?=anchor('blog/post/'.$row->id,$row->title);?>

上面的代码正在渲染 url

<a href="http://localhost/Blog/index.php/blog/post/3">Title</a>

我想知道在<a>标签中嵌入其他 HTML 元素的其他方法?

HTML 页面上的输出应如下所示:

<a href="link" rel="bookmark"> 
    <span class="location">Category</span>
     <h3 class="headline">Headline</h3>
     <span class="new">New !</span>
    <span class="date">Date</span>
  </a>

IE。在<a>我想嵌入的标签<span><h3>

有什么建议么 ?


<?php
    $my_a = '<span class="location">Category</span>
        <h3 class="headline">'.$row->title.'</h3>
        <span class="new">New !</span>
        <span class="date">Date</span>';
    anchor('blog/post/'.$row->id,$row->title);?>

或者为这种类型的链接编写自己的助手。

4

4 回答 4

1

恕我直言,CodeIgniter 的 html 帮助器 + url 帮助器中包含的一些功能绝对是矫枉过正。

只需使用带有 PHP 短标签的 vanilla HTML……它可以传达更好的语义,节省 CPU,并且对于将来继承您的代码的人来说更容易理解……

<a href="blog/post/<?= $row->id; ?>" rel="bookmark"> 
    <span class="location">Category</span>
     <h3 class="headline"><?= $row->title; ?></h3>
     <span class="new">New !</span>
    <span class="date">Date</span>
</a>
于 2012-08-25T20:12:44.027 回答
0

我建议自己编写 HTML 并使用该site_url()函数来生成链接 href。

anchor()用于简单链接和在模板中嵌入链接而无需编写 HTML。您想要输出链接的方式不是anchor()设计的。

您可以使用如下函数创建一个助手:

function bookmark_anchor($uri, $text)
{
    $html  = '<a href="' . site_url($uri) . '" rel="bookmark">';
    $html .= '<span class="location">Category</span>';
    $html .= '<h3 class="headline">' . $text . '</h3>';
    $html .= '<span class="new">New !</span>';
    $html .= '</a>';

    return $html
}

然后像这样使用它:

<?php echo bookmark_anchor('blog/post/'.$row->id, $row->title); ?>

旁注:如果你能忍受的话,我会避免使用 PHP 短标签。它们不能立即移植到每个系统,因此如果您将代码移动到另一台服务器,您可能会遇到问题(并且您可能无法启用短标签)。CI 提供了为您重写短标签的选项,但这会通过输出缓冲引入开销。

于 2012-08-25T22:22:14.737 回答
0

只需使用anchor方法的第二个参数,像这样:

$a ='<span class="location">Category</span>
     <h3 class="headline">Headline</h3>
     <span class="new">New !</span>
    <span class="date">Date</span>';

<?=anchor('blog/post/'.$row->id,$a.$row->title,array("rel" => "bookmark"));?>

另外,我添加了第三个参数,它可以让您编写标签的 html 属性,例如;在这种情况下,“rel”属性。

于 2012-08-26T12:57:46.173 回答
0
<?php
    $my_a = '<span class="location">Category</span>
        <h3 class="headline">'.$row->title.'</h3>
        <span class="new">New !</span>
        <span class="date">Date</span>';
    anchor('blog/post/'.$row->id,$row->title);?>

或者为这种类型的链接编写自己的助手。

于 2012-08-25T17:26:10.107 回答