如果设置了变量,则会显示图标

时间:2013-05-07 03:46:44

标签: php html

我为我正在制作的模板创建了一个配置文件。我试图让社交图标仅在变量设置时出现,所以如果他们没有输入该图标的信息,则不会在图标行中显示。

我知道我可以使用if语句执行此操作,但我不想制作12个if语句(每个图标一个)

这是图标的配置部分

/* ==========================================================================
   Social Media Acct. Information Below
   ========================================================================== */

/*** INLCUDE FULL URL FOR ALL FIELDS ***/

// Facebook
define('FACEBOOK_URL', '#');

// Twitter
define('TWITTER_URL', '#');

// Linkedin
define('LINKEDIN_URL', '#');

// Pinterest
define('PINTEREST_URL', '#');

// Google Plus
define('GOOGLE_URL', '#');

// Dribbble
define('DRIBBBLE_URL', '#');

// Youtube
define('YOUTUBE_URL', '#');

// Vimeo
define('VIMEO_URL', '#');

// Flickr
define('FLICKR_URL', '#');

// Yelp
define('YELP_URL', '#');

// Stumble Upon
define('STUMBLE_URL', '#');

//Specify icon color below (white or dark)

define('ICON_COLOR', 'white');

,这是每个图标的html

<div id="social_icons">
    <a href="#"><div class="icon_container" id="facebook_icon"></div></a>
    <a href="#"><div class="icon_container" id="twitter_icon"></div></a>
    <a href="#"><div class="icon_container" id="linkedin_icon"></div></a>
    <a href="#"><div class="icon_container" id="google_icon"></div></a>
    <a href="#"><div class="icon_container" id="pinterest_icon"></div></a>
    <a href="#"><div class="icon_container" id="dribble_icon"></div></a>
    <a href="#"><div class="icon_container" id="youtube_icon"></div></a>
    <a href="#"><div class="icon_container" id="vimeo_icon"></div></a>
    <a href="#"><div class="icon_container" id="flickr_icon"></div></a>
    <a href="#"><div class="icon_container" id="yelp_icon"></div></a>
    <a href="#"><div class="icon_container" id="stumbleupon_icon"></div></a>
</div>

我希望能够在不在每个链接周围放置if语句的情况下完成此操作。有办法吗?谢谢!

编辑以下是基于@ thtjuan答案的新代码片段,如果这有助于回答完整的问题。

PHP

$social_links = array(

   'facebook'       => '#',

   'twitter'        => '#',

   'linkedin'       => '#',

   'google'         => '#',

   'pinterest'      => '#',

   'dribbble'       => '#',

   'youtube'        => '#',

   'vimeo'          => '#',

   'flickr'         => '#',

   'yelp'           => '#',

   'stumbleupon'    => '#'
);

HTML

<div id="social_icons">
     <?php foreach( $social_links as $icon => $url ): ?>
     <a href="<?php echo $url; ?>"><div class="icon_container" id="<?php echo $icon?>_icon"></div></a>
     <?php endforeach;?>
</div>

1 个答案:

答案 0 :(得分:2)

创建一个链接数组,然后使用for循环将它们全部打印出来:

e.g。

$links = array(
   'facebook' => '#',
   'twitter' => '#'
);

然后:

<div id="social">
  <?php foreach( $links as $icon => $url ): ?>
      <a href="<?php echo $url; ?>"><div class="icon_container" id="<?php echo $icon?>_icon"></div></a>
  <?php endforeach;?>
</div>

请注意,任何不在$ links数组中的链接都不会显示在您的页面上。如果您必须拥有数组中的所有条目,那么您可以通过执行以下操作来保留没有隐藏URL的条目:

<div id="social">
  <?php foreach( $links as $icon => $url ): ?>
      <?php if( strlen($url) && $url != '#' ): ?>
          <a href="<?php echo $url; ?>"><div class="icon_container" id="<?php echo $icon?>_icon"></div></a>
      <?php endif; ?>
  <?php endforeach;?>
</div>