我正在使用CodeIgniter的锚标记来生成链接
以下是我在视图中使用的代码:
<?=anchor('blog/post/'.$row->id,$row->title);?>
上面的代码正在呈现网址,如
<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>
即。在<a>
代码中,我想嵌入<span>
和<h3>
有什么建议吗?
答案 0 :(得分: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>
答案 1 :(得分: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);?>
或者为这种类型的链接编写自己的助手。
答案 2 :(得分: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); ?>
Sidenote :如果你能忍受,我会避免使用PHP短标签。它们不能立即移植到每个系统,因此如果将代码移动到另一个服务器(并且可能无法启用短标签),则可能会遇到问题。 CI提供了为您重写短标签的选项,但这会通过输出缓冲引入开销。
答案 3 :(得分:0)
只需使用锚方法的第二个参数,如下所示:
$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'属性。