【问题标题】:PHP: replace variable values within stringPHP:替换字符串中的变量值
【发布时间】:2014-06-12 10:57:53
【问题描述】:

我对 PHP 很陌生,希望这里有人可以帮助我:

我有一个变量字符串,如下所示,不包含任何内容或包含一系列单词,用逗号和空格分隔。

示例:

item1, item2, item3

通过添加与源名称相同的项目名称的 img 标签 + 删除逗号来替换此字符串中的单个项目的最佳/最快方法是什么?

上面的例子应该如下所示:

item1 <img src="item1.png" alt="" /> item2 <img src="item2.png" alt="" /> item3 <img src="item3.png" alt="" />

非常感谢您提供的任何帮助,迈克。

【问题讨论】:

  • 单行:echo implode("\n", array_map(function($v) {return '&lt;img src="'.trim($v).'png" alt="" /&gt;'; }, explode(',', $str)));
  • echo preg_replace('/(\w+),?\s*/', '&lt;img src="${1}.png" alt="" /&gt; ', $str);

标签: php arrays replace str-replace


【解决方案1】:

这可以在 1-liner 中完成,但由于您是 PHP 新手,所以让我们说清楚。

首先拆分字符串以获得不同项目的数组。

$itemsStr = "item1, item2, item3";  // input string
$items = explode(", ", $itemsStr);  // Gets an array of items

现在遍历 items 数组并为每个 item 添加字符串:

foreach($items as $key => $val)
{
    $items[$key] = $item . "<img src='$item.png' alt='' /> ";
}

$output = implode(" ", $items);

【讨论】:

  • 不错的@Joshua Kissoon
  • 非常感谢 - 解释很好!
【解决方案2】:

这个preg_replace 应该这样做:

$in = 'item1, item2, item3';
$out = preg_replace('/( ?([^,]+)),?/', '$1 <img src="$2.png" alt="" />', $in);

$out 然后是:

item1 <img src="item1.png" alt="" /> item2 <img src="item2.png" alt="" /> item3 <img src="item3.png" alt="" />

【讨论】:

  • 谢谢。此处的数字将如何变化,以便 img 源为 item1.png 或 item2.png 或 item3.png ?
猜你喜欢
  • 2018-01-01
  • 2022-08-09
  • 2016-03-15
  • 2020-08-14
  • 1970-01-01
  • 2016-06-13
  • 1970-01-01
  • 2020-02-04
相关资源
最近更新 更多