2016-12-31 11 views
0

データフィールドの配列(値864と987)の実際の値で置き換えたいのですが、[crowdpdf-total=field_585b0b3288d2e]と置き換える方法がわかりません例えば864[crowdpdf-total=field_585b0b3288d2f]987となる。文字列の一部をPHPの正規表現で検索して置換する

配列:

array (
'field_585b0b3288d2e'=> 864, 
'field_585b0b3288d2f => 987 
) 

文字列:

etc etc etc content 
[crowdpdf-total=field_585b0b3288d2e] 
etc etc [crowdpdf-total=field_585b0b3288d2f] 
etc content 

私は多くのことが得意だが、いくつかの理由のために、私は非常に正規表現を完全に理解したことがありません。 ..私は正規表現が実際の値と[crowdpdf-total={nameoffield}]を交換する方法だと思いますか?正規表現はここに行く方法ですか?

私は文字列になりたい:

etc etc etc content 
864 
etc etc 987 
etc content 

明確化:私は交換する方法を理解するので、私は交換のような [crowdpdf-total=864]ことを行うことができ、私はで[crowdpdf-total=を削除することができ
実際の値[crowdpdf-total=を空の文字列に置き換えるだけですが、各値の最後に余分な括弧があります。

+1

完全に理解する時間は、この[書籍](http://shop.oreilly.com/product/9780596528126.do)を読んでください。 (私に魚を与えてはいけませんが、魚に教えてください!) –

+0

@ Meninx-メネンクス - そのようなコメントは本当に価値を追加しませんが、ヒントのおかげで:-) – bestprogrammerintheworld

答えて

3

正規表現を使用する必要はありません。単純な文字列の置き換えは行います:それは出力

<?php 

$string = <<<EOT 
etc etc etc content 
[crowdpdf-total=field_585b0b3288d2e] 
etc etc [crowdpdf-total=field_585b0b3288d2f] 
etc content 
EOT; 

$replacements = [ 
    'field_585b0b3288d2e' => 864, 
    'field_585b0b3288d2f' => 987, 
]; 

foreach ($replacements as $find => $replace) { 
    $string = str_replace("[crowdpdf-total=$find]", $replace, $string); 
} 

echo $string; 

etc etc etc content 
864 
etc etc 987 
etc content 

Test it onlineを、あなたが望むなら。

+0

ああ。もちろん!私は間違った方向に向かっていると思った。私を正しい方向に導いてくれてありがとう! :-) – bestprogrammerintheworld

関連する問題