$replaces = array('replace 1', 'replace thing 2', 'third replace');
$string = '{REPLACEME} sfsfsdfsdf {REPLACEME} sdfopjsd {REPLACEME} sdfsdf {REPLACEME}';
それぞれの連続する{REPLACEME}
を一致する置換えに置き換える最も簡単な方法は何ですか?文字列中の文字列の同じインスタンスを配列で置き換える方法は?
代替品よりも{REPLACEME}
が多い場合は、{REPLACEME}
には触れないでください。
私は私の例でたい出力があるので:
$replaces = array('replace 1', 'replace thing 2', 'third replace');
$string = '{REPLACEME} sfsfsdfsdf {REPLACEME} sdfopjsd {REPLACEME} sdfsdf {REPLACEME}';
$sampler = explode('{REPLACEME}',$string);
foreach($sampler as $k=>$v){
if(isset($replaces[$k])) {
$sampler[$k] .= $replaces[$k]
} else {
$sampler[$k] = '{REPLACEME}' //or whatever
}
}
$final = implode("",$sampler);
//it's ok for not so long strings or at least not to many {REPLACEME}
リミットパラメータをうまく使います! – gravelpot
ええと...私はいつもstr_replace()に似たようなパラメータがないのか疑問に思っています... –
'foreach'の繰り返しごとに、文字列全体が' {REPLACEME} 'のために検索されます。置換文字列にもその文字列が含まれている場合、置き換えられます。 – Gumbo