2016-06-15 13 views
0
$string = "[abc] my [efg] best [hij]"; 

最初に[]をハイに変更します。
second []はHelloに変更します。
3番目の[]世界に変更します。

文字列を別の結果に置き換えます。

文字列全体が動的です。 (これは、異なる結果を示して常にある。) 例:

$string = "[iii] my my [ooo] yes to all [eee]"; 
$string = "[abc] lovely [efg] [hij]"; 
$string = "[abc] my [efg] best of the the the the [hij]. That Right."; 

私はこのコードを試みたことができますが、それは同じ値にすべてを交換してください。

$string = preg_replace('/\[(.*?)\]/',"Hi",$string); 

交換すると、こんにちは、こんにちは世界になります。それにstr_replace文字列を付けることはできますか?

+0

$ string = "test test"; '' $ string = "テストテストテスト"; "に変更するか、または" second test change to Hello "で変更します。 –

答えて

2

は、移動するための方法である:

$string = "[abc] my [efg] best [hij]"; 
$repl = array('Hi', 'Hello', 'World'); 
foreach($repl as $word) { 
    $string = preg_replace('/\[[^\]]+\]/', $word, $string, 1); 
} 
echo $string,"\n"; 

出力:

Hi my Hello best World 
+0

驚くばかりの答え! – Iwan

0

あなたは機能explode使用することができます:あなたは全体のテキストがここので、不要条件を変更しないようにしたい

<?php 
    $string = "[abc] my [efg] best [hij]";   

    $ar = explode(" ", $string);    

    $ar[0] = 'Hi';      
    $ar[2] = 'Hello';      
    $ar[4] = 'World'; 

    echo implode(' ', $ar); //Hi my Hello best World 
+0

ご迷惑をおかけして申し訳ありません。私は間違った質問をすることを知っている。私は私の質問を編集しました。もう一度申し訳ありません – learnallskill

+0

@learnallskill問題ありません。私は答えを編集し、それを使うことができます。 – Iwan

0

を...ここで

$string = "[abc] [efg] [hij]"; 
$change = "Hi Hello World"; 
echo str_replace($string,$change,$string); 
関連する問題