0

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

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

1 回答 1

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>';
}
于 2012-11-24T01:51:54.103 回答