我是php的新手,但我需要修改一些字符串,以便添加一个带有rel intro的链接,一个视觉作曲家短代码,一个动画图标。 问题是我有这个变量,默认情况下我应该只添加两个变量。
这是原始代码:
$svg_icon = '<div class="svg-icon-holder" data-size="'. $icon_size . '" data-animation-speed="'.$animation_speed_time.'" data-animation="'.$enable_animation.'" data-animation-delay="'.$animation_delay.'" data-color="'.strtolower($color) .'"><span>'. get_template_directory_uri() . '/css/fonts/svg/' . $image .'</span></div>';
问题在于:我应该在代码<a href="'. $icon_link . '" rel="'. $icon_link_rel .'">
之前插入一个<div>
,在结束div之后插入一个</a>
但是只有在变量&icon_link
是设置,如果没有,则不应显示<a>
标记,因为我不需要指向所有图标的链接。
希望我能很好地解释自己,如果不让我知道的话!
问候,Alin。
答案 0 :(得分:3)
如果if-statement
已定义并设置,请执行$icon_link
,然后使用点(<a>
)将$svg_icon
标记添加到.
变量中:
$svg_icon = '<div class="svg-icon-holder" data-size="'. $icon_size . '" data-animation-speed="'.$animation_speed_time.'" data-animation="'.$enable_animation.'" data-animation-delay="'.$animation_delay.'" data-color="'.strtolower($color) .'"><span>'. get_template_directory_uri() . '/css/fonts/svg/' . $image .'</span></div>';
if($icon_link)
{
$svg_icon = '<a href="'. $icon_link . '" rel="'. $icon_link_rel .'">'.
$svg_icon.'</a>';
}
答案 1 :(得分:1)
只需使用if语句即可。您正在操纵字符串,因此您可以轻松地将单词添加到其他字符串
if ($icon_link){
$beginning = "<a href='$icon_link' rel='$icon_link_rel'>";
$ending = "</a>"
}
else {
$beginning = "";
$ending = ""
}
$svg_icon = "$beginning<div class='svg-icon-holder' data-size='$icon_size' data-animation-speed='$animation_speed_time' data-animation='$enable_animation' data-animation-delay='$animation_delay' data-color='".strtolower($color)."'>
<span>".get_template_directory_uri()."/css/fonts/svg/$image</span></div>$ending";
答案 2 :(得分:0)
我个人更喜欢使用sprintf
格式化字符串,而不是使用点将字符串粘贴在一起。您可以使用if ($(banner).offset().left > 40) {
banner.css("backgroundPosition", "0px 0px ");
}
将$svg_icon
字符串与sprintf
标记放在一起。如果定义了<div>
,那么只需在<a>
周围打上$svg_icon
标记:
$icon_link
免责声明:此代码未经过测试。请查看我链接的sprintf文档,并尝试自己编写代码。
答案 3 :(得分:-1)
首先,不要在一行上写下所有内容,因此它在SO上适合屏幕(也可能在你的代码中)。
其次,我会使用instring变量。在php中你可以使用单引号,你的字符串按原样使用,或者你可以使用双引号,你可以在其中使用变量。像echo "Hey, my name is $name";
$ name这里将通过变量的值进行交换。如果您需要在字符串中使用双引号,则可以使用\"
第三,您可以使用内联if-else,下面的语法:$str = boolean ? "str if true" : "str if false"
$svg_icon = isset($icon_link) ? "<a href=\"$icon_link\"
rel=\"$icon_link_rel\">" : '' . //add your opening <a> if needed
"<div class=\"svg-icon-holder\"
data-size=\"$icon_size\" data-animation-speed=\"$animation_speed_time\"
data-animation=\"$enable_animation\"
data-animation-delay=\"$animation_delay\"
data-color=\"strtolower($color) \"><span>"
. get_template_directory_uri()
. "/css/fonts/svg/ $image </span></div>"
. isset($icon_link) ? '<\a>' : ''; //add your closing <\a> if needed