【问题标题】:image links with functions in phpphp中带有函数的图像链接
【发布时间】:2011-04-15 18:02:18
【问题描述】:

我有一个关于函数的问题。

function &formatName($id, $name, $clanId, $clanSym, $clanCol)
{
    static $cache = array();

    if (!isset($cache[$name])) {
        $cache[$name] = esc($name);

        if ($id !== NULL) {
            $cache[$name] = '<a href="' . esc('player_info.php?target=' . $id) .
             '">' . $cache[$name] . '</a>';
        } else {
            $cache[$name] = "<s>{$cache[$name]}</s>";
        }

        if ($clanId !== NULL && $clanId != 0) {
            $cache[$name] = "(<span style=\"color: #$clanCol;\">" .
             htmlentities($clanSym) . "</span>) " . $cache[$name];
        }
    }

    return $cache[$name];
}

//打印$player的可点击名称

function print_name($player)
{
    global $db_name, $user_options;
    static $cache = array();

    if (!isset($cache[$player['login_name']])) {//this user not cached
        $pQuery = mysql_query("select u.login_id, u.login_name, u.clan_id, u.clan_sym_color,u.clan_sym from ${db_name}_users u where u.login_id = '$player[login_id]'");
        $player = mysql_fetch_assoc($pQuery);

        $cache[$player['login_name']] = formatName($player['login_id'],
         $player['login_name'], $player['clan_id'], $player['clan_sym'],
         $player['clan_sym_color']);
    }

    return $cache[$player['login_name']];
}

上面的函数打印一个带有玩家名字的链接。 我想在链接上放置一张桌子或某种装饰背景。 我有什么办法可以做到这一点? 感谢您的阅读。

【问题讨论】:

  • 该死。大声笑我试图添加一个 div,但它也不起作用。
  • 考虑阅读CSS

标签: php html css


【解决方案1】:

只需换行:

$cache[$name] = '<a href="' . esc('player_info.php?target=' . $id) . '">' . $cache[$name] . '</a>';

$cache[$name] = '<span class="link-decorator">';
$cache[$name] .= '<a href="' . esc('player_info.php?target=' . $id) .
             '">' . $cache[$name] . '</a>';
$cache[$name] .= '</span>';

然后您可以使用 CSS 设置链接和周围跨度的样式:

span.link-decorator { border: 3px solid #789abc; }
span.link-decorator a { color: red; }
span.link-decorator a:hover { color: blue; }
span.link-decorator a:visited { color: green; }

【讨论】:

  • 下一个回复将是“它什么都不做”:-)
  • 大声笑,它不起作用,它什么也没做。实际上它完全隐藏了链接。
  • 我的代码中有一个错字(现在已修复),您应该查看 HTML 输出,最终将其传递给 HTML 验证器,例如 W3C 验证器(Google 将提供帮助)并修复 HTML 错误突出显示。
  • 我可能回答得太快了。 CSS实际上确实为其添加了可点击的背景。 :)
  • 我可以放一个 div 代替吗?
【解决方案2】:

您可以在链接周围放置一个跨度并为其添加样式,这将比设置链接样式更灵活。

$cache[$name] = '<span style="background-image: url(image.jpg);"><a href="' . esc('player_info.php?target=' . $id) . '">' . $cache[$name] . '</a></span>';

【讨论】:

  • 这是示例代码 - 您必须将 image.jpg 替换为服务器上的真实图像...
  • 并更正我的拼写错误 :) 但这与所选答案完全相同 - 所以忘记它。
猜你喜欢
  • 2015-07-02
  • 1970-01-01
  • 2012-05-10
  • 2013-02-10
  • 1970-01-01
  • 2015-07-07
  • 1970-01-01
  • 2020-07-04
  • 1970-01-01
相关资源
最近更新 更多