我需要一些PHP的帮助。过去几天我一直在尝试几件事情,包括str_replace无济于事。
我有一个可能包含1到20个值的字段,全部列在各自的行中,该字段中没有用于分隔它们的html代码,并且某些值可能在它们之间有自己的空格,因此分隔为空间不起作用。
我需要的是提取每一行的每个字符串并将其转换为代码。
<p>For example, my field with values looks like this: </p>
<p><b>lang_fld </b><br>
------
<br>
English<br>
Spanish<br>
German<br>
French</p>
我想到的是提取每一行,例如。来自该字符串的“英语”,并创建一行代码,如
<img src="images/flags/english.png> English
基本上我想将标志图形添加到单词
我已经尝试了
echo str_replace('English','<img src="images/flags/english.png>,lang_fld)<br>
...and so on
经历每一个可能的值之后得到的是一堆错误 消息(因为我不断改变 - 每次不同 - 通过猜测)
有人可以提供更简单的选择吗?并非所有20个值都在 那个areatext字段,有些可能只包含一种语言,有的十种,有的只有20种, 等
谢谢!
答案 0 :(得分:0)
假设您在单独的行上拥有所有值,您可以对字符串执行explode()
以将其转换为单独项目的数组,然后使用foreach
循环遍历数组并执行任何修改单项。完成这些项目并希望将它们重新组合在一起后,您可以使用implode()
将它们组合成一个字符串。
一个简短的示例(您当然可以使用for
循环,我只是更喜欢foreach
,因为它更好地向您展示了数据发生的情况):
$text =
"French language
Italian language
English language";
$items = explode( "\n", $text ); // Split by newline ( you can also use "<br>" as separator )
$result = array(); // Modified data will be placed here
foreach ( $items as $item )
{
// Do something with $item
$item = "<img src=\"images/flags/$item.png\"> $item";
$result[] = $item;
}
// Merge them back together
$text = implode("\n", $result);