php条件锚打印

时间:2012-03-23 16:00:08

标签: php hyperlink anchor

考虑以下用于HTML输出的PHP代码:

        echo "<div id='logo2'>
                <a href='if(checkLanguage()) index.php; else index.php?lang=en;'>
                    <img src='img/logotext1.png' width='".$logoWidth2."'height='".$logoHeight2."' 
                    border='0';/>
                </a>
        </div>";

如您所见,由于某些连接错误,a标签中的 if和else条件无法正常工作。非常感谢任何使超链接工作的帮助。

5 个答案:

答案 0 :(得分:4)

更改

<a href='if(checkLanguage()) index.php; else index.php?lang=en;'>

通过

<a href='".(checkLanguage() ? 'index.php' : 'index.php?lang=en').">

但是,我会建议:

<div id="logo2">
    <a href="<?php echo (checkLanguage() ? 'index.php' : 'index.php?lang=en'); ?>">
    <img src="img/logotext1.png" width="<?php echo $logoWidth2; ?>" height="<?php echo $logoHeight2; ?>" border="0" />
    </a>
</div>

另外:

  • 对HTML代码使用双引号,为PHP使用撇号。
  • 在变量
  • 中拆分if else

答案 1 :(得分:2)

这不是PHP的工作方式......

<?php ?>
<div id="logo2">
   <a href="<?= checkLanguage() ? 'index.php' ? 'index.php?lang=en' ?>">
      <img src="img/logotext1.png" width="<?= $logoWidth2 ?>" height="<?= $logoHeight2" border="0" /></a>
</div>

请注意,我正在使用简写<?=构造,它只在PHP配置中启用了short_tags。否则,它必须是<?php echo

同样,请注意我将大部分代码用于“html模式”。当你正在做一个主要的非PHP代码时,最好只在非PHP代码中嵌入小<?php ?>块,而不是乱用回声,引用转义等...任何体面的编辑器值得盐,无论如何都会突出显示PHP代码,因此易读性得到很大改善,PHP部分也能很好地展现出来。

答案 2 :(得分:1)

您尚未使用<?php?>包含PHP部分。

编辑;啊,这是一个很大的echo语句。最好将所有HTML制作成PHP并在需要时打开PHP标签。也就是说,<div><a>标记不需要回显 - 只需将它们放在PHP标记之外,然后为<?php打开if。< / p>

答案 3 :(得分:1)

建议取出护发素以使您的代码更清洁:

$href = (checkLanguage() ? 'index.php' : 'index.php?lang=en');
echo '
<div id="logo2">
    <a href="'.$href.'">
        <img src="img/logotext1.png" width="'.$logoWidth2.'" height="'.$logoHeight2.'" border="0" />
    </a>
</div>';

答案 4 :(得分:1)

由于您刚刚开始,我已经以最详细和易于理解的格式编写了这段代码。我还删除了您的HTML格式,并将其替换为首选的CSS格式。

<?php
echo '<div id="logo2">';

if(checkLanguage())
{
    echo '<a href="index.php">';
}
else
{
    echo '<a href="index.php?lang=en">';
}
echo '<img src="img/logotext1.png" style="width: '.$logoWidth2.'px; height: '.$logoHeight2.'px; border: none;" />';
echo '</a>';

echo '</div>';
?>