0

我需要一些关于 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>

我的想法是提取每一行,例如。来自该字符串的“English”,并创建一行代码,例如

<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 个值都在该区域文本字段中,有些可能只包含一种语言,有些可能包含 10 种语言,有些则全部 20 种,等等。

谢谢!

4

1 回答 1

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);
于 2013-03-10T20:13:22.533 回答