0

これはよくある質問かもしれませんが、私が望む正確な答えが見つかりません。

次の文字列があります。

#|First Name|#
Random Text
#|Last Name|#

私がやりたいことは、#|&の間にあるすべての値を持ち|#、文字列全体を値に置き換えることです。これは配列内にある必要があるため、それらすべてをループできます。

だから私が持っている例として:

#|First Name|#

処理後、次のようになりたい:

John

したがって、主なロジックは、名の値を使用してデータベースから値を出力することです。

誰かがここで私を助けてくれますか。

これは私が試したコードです:

preg_match('/#|(.*)|#/i', $html, $ret);

ありがとう

4

2 に答える 2

1
$string = '#|First Name|#
Random Text
#|Last Name|#';
$search = array(
    '#|First Name|#',
    '#|Last Name|#',
);
$replace = array(
    'John',
    'Smith',
);
$string = str_replace($search, $replace, $string);
于 2012-07-19T20:44:41.423 に答える
1

preg_replace_callback()正規表現を非貪欲にし、垂直バーをエスケープすることに加えて、これが必要になります。

$replacements = array( 'John', 'Smith');
$index = 0;
$output = preg_replace_callback('/#\|(.*?)\|#/i', function( $match) use ($replacements, &$index) {
    return $replacements[$index++];    
}, $input);

これは出力します

string(24) "John
Random Text
Smith"
于 2012-07-19T20:43:02.853 に答える