PHP从值列表中提取单个字符串

时间:2013-03-10 19:31:00

标签: php string str-replace

我需要一些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','&lt;img src="images/flags/english.png&gt;,lang_fld)<br>
...and so on

经历每一个可能的值之后得到的是一堆错误 消息(因为我不断改变 - 每次不同 - 通过猜测)

有人可以提供更简单的选择吗?并非所有20个值都在 那个areatext字段,有些可能只包含一种语言,有的十种,有的只有20种, 等

谢谢!

1 个答案:

答案 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);