0

CIによって生成されたアンカーテキストを非表示にする方法はありますか?CSS(つまり、負のテキストインデント)を介してこれを非表示にできることは知っていますが、それは多くの不要な作業のようです。通常のHTMLコード化アンカーを使用しないのはなぜですか?

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

1 に答える 1

1

おそらく彼らは、人々が設計よりも誤って空白の文字列を渡す可能性があると考えていたのかもしれません。私にはわかりませんし、あなたの質問のその部分に答えることはできません。

URLヘルパーでCodeIgniterアンカーメソッドを使用すると、必要に応じてWebサイトのベースパスを自動的に追加できるという利点があります。

CodeIgniterヘルパーを使い続け、アンカーテキストのないアンカーを使用する場合は、いくつかのオプションがあります。

オプション1:2番目の引数にスペースを追加します。

<?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 に答える