使用preg替换为数组

时间:2010-11-03 06:34:45

标签: php

我有一个复选框列表,创建一个我想要迭代的数组,让值既可以创建图像文件名,也可以创建标题和alt标记。

$specs = get('speciesCommon');
$thepath = get_bloginfo('template_directory'); 
foreach($specs as $speci){
echo '<li><img src="'.$thepath.'/library/images/icons/species/'.$speci.'.gif" width="30" height="30" alt="'.$speci.'" title="'.$speci.'" /></li>' ;
}

因此,例如,复选框值是灰熊 - 然后它将填充此打印:

<img src=".../grizzly-bear.gif" title="grizzly-bear" alt="grizzly-bear" .../>

我想只打印没有连字符的标题和alt标签..我试过..

$speci = preg_replace('/-/','\s',$speci);

但它没有用,然后我意识到图像需要连字符所以我无论如何都不能这样做。关于如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:1)

我会使用str_replace进行这种简单的替换。您还需要将结果放在一个新变量中,因为您要同时使用旧值和新值。

foreach($specs as $speci){
  $speci_nohyphen = str_replace('-', ' ', $speci);
  echo '<li><img src="', $thepath, '/library/images/icons/species/', $speci, '.gif" width="30" height="30" alt="', $speci_nohyphen, '" title="', $speci_nohyphen, '" /></li>';
}