锚文本 - 你可以隐藏吗? (URL助手)

时间:2012-11-05 14:31:50

标签: codeigniter-2 codeigniter-form-helper

无论如何都要隐藏CI生成的锚文本?我知道我可以通过CSS隐藏它(即负文本缩进),但这似乎是很多不必要的工作。为什么我不只是使用常规的HTML编码锚?

<?php echo anchor(base_url(),''); ?>

1 个答案:

答案 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>';
}