无论如何都要隐藏CI生成的锚文本?我知道我可以通过CSS隐藏它(即负文本缩进),但这似乎是很多不必要的工作。为什么我不只是使用常规的HTML编码锚?
<?php echo anchor(base_url(),''); ?>
答案 0 :(得分:1)
也许他们认为人们可能会错误地传递空白字符串而不是设计,我不知道也无法回答你问题的这一部分。
在URL帮助程序中使用CodeIgniter锚点方法具有在必要时自动添加网站基本路径的优势。
如果您想继续使用CodeIgniter帮助程序并且锚点没有锚文本,那么您有以下几种选择:
选项1:在第二个参数中添加一个空格:
<?php echo anchor(base_url(),' '); ?>
选项2:扩展URL帮助程序并删除行为:
进入application \ helpers并创建一个名为MY_url_helper.php
然后您可以在其中放置代码来替换锚方法或定义一个全新的方法。
以下是您可以放入文件的一些代码示例:(我已经在CodeIgniter安装中调整了url_helper中的代码,我很方便)
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
if ( ! function_exists('anchor_hide_text'))
{
function anchor_hide_text($uri = '', $title = '', $attributes = '')
{
$title = (string) $title;
if ( ! is_array($uri))
{
$site_url = ( ! preg_match('!^\w+://! i', $uri)) ? site_url($uri) : $uri;
}
else
{
$site_url = site_url($uri);
}
if ($attributes != '')
{
$attributes = _parse_attributes($attributes);
}
return '<a href="'.$site_url.'"'.$attributes.'>'.$title.'</a>';
}
}
或
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
function anchor($uri = '', $title = '', $attributes = '')
{
$title = (string) $title;
if ( ! is_array($uri))
{
$site_url = ( ! preg_match('!^\w+://! i', $uri)) ? site_url($uri) : $uri;
}
else
{
$site_url = site_url($uri);
}
if ($attributes != '')
{
$attributes = _parse_attributes($attributes);
}
return '<a href="'.$site_url.'"'.$attributes.'>'.$title.'</a>';
}