如果使用某个单词,php将图像添加到标题

时间:2012-01-19 14:49:08

标签: php image pattern-matching

我有以下代码:

<h2>
  <?php echo $this->item->title; ?>
</h2>

取决于作为标题被拉入的单词,我需要在标题文本的左侧放置一个不同的图像。

图片:uk.png,france.png,germany.png

因此,如果标题文字说法国,我需要拉入france.png图像。所以我需要一个“可以”使用的图像和标题列表,如果标题与图像不匹配,则不会显示图像。

希望这是有道理的......

5 个答案:

答案 0 :(得分:1)

<?php

  $images = array (
    'France' => 'france.png',
    'UK' => 'uk.png',
    'Germany' => 'germany.png'
  );

  if (isset($images[$this->item->title])) {
?>

<img src="<?php echo $images[$this->item->title]; ?>" />

<?php } ?>

<h2>
<?php echo $this->item->title; ?>
</h2>

答案 1 :(得分:0)

例如:

function getPic($title)
{
    static $pics = array('uk'      => 'uk.png',
                         'france'  => 'france.png',
                         'germany' => 'germany.png');
    return isset($pics[$title]) ? "<img src='{$pics[$title]}' >" : "";
}

答案 2 :(得分:0)

您可以根据输入字符串编写一个返回图像文件的函数,根据您的示例,我们假设为$this->item->title。其主要目的是在从输入字符串确定“country”之后返回一个字符串。

function getCountryImage($input)
{
    // an array containing the mapping of country names to image file names
    $images = array(
        'France' => 'france.png',
        'UK' => 'uk.png',
        'Germany' => 'germany.png' );

    for each( $images as $country => $filename )
        if( $country == $input )
            return $filename;

    return '';
}

如果要显示图像,唯一剩下的就是:

<img src="[image path]/<?php echo getCountryImage($this->item->title);?>" />

度过美好的一天。

答案 3 :(得分:0)

这可能不是您问题的正确答案,但对于链接,您只需使用css即可获得所需内容。

a[href$='.zip'], a[href$='.rar'], a[href$='.gzip'] {
    background:transparent url(../images/zip.png) center left no-repeat;
    display:inline-block;
    padding-left:20px;
    line-height:18px;
}

有关更多示例,请参阅web-kreation

我想添加这个,因为对于想要根据链接的部分添加图标链接的人来说这是一个很好的提示,这有点类似于你想要的。

答案 4 :(得分:0)

使用国家/地区名称作为显示相应图像的关键可能被认为是不太可靠的解决方案。

我建议您使用ISO 3166-1国家/地区代码作为密钥。然后,根据coutry代码,您可能有两个返回国家/地区名称和图像的函数。

你可能会遇到这样的事情(我没有故意在这个例子中使用类和错误处理):

<?php
function getCountryNameByIsoCode($iso_code)
{
    static $country_names = array ("FRA" => "France", "GBR" => "United Kingdom", ...);
    return $country_name[$code];
}

function getCountryFlagImageFileNameByIsoCode($code)
{
    static $country_flags = array ("FRA" => "france.png", "GBR" => "uk.png", ...);
    return $country_flags[$iso_code];
}
?>

<h2>
    <img src="/img/<?php echo getCountryFlagImageFileNameByIsoCode($this->item->iso_code); ?>" alt="" />
    <?php echo getCountryNameByIsoCode($this->item->iso_code); ?>
</h2>