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>

私が念頭に置いているのは、各行を抽出することです。その文字列から「英語」を入力し、次のようなコード行を作成します

<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フィールドに含まれるわけではなく、1つの言語のみが含まれる場合もあれば、10個すべてが含まれる場合もあり、20個すべてが含まれる場合もあります。

ありがとうございました!

4

1 に答える 1

0

別の行にすべての値があると仮定するとexplode()、文字列を個別のアイテムの配列に変換してから、配列をループしforeachて単一のアイテムで変更を実行できます。アイテムを使い終わって元に戻したい場合は、 を使用implode()してそれらを 1 つの文字列に結合できます。

短いサンプル (もちろん、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 に答える