2016-12-25 7 views
0

私はhtmlコードをペイントする必要があるhtml文字列を持っていますが、htmlでhtmlを見つけたときにstr_replaceに含まれる変数が増えると興味があります。ここでstr_replace見つかった各レコードの変数値をインクリメント

$codigoU = 1000; 

$info = str_replace(array('</p><div', '</div></div>'),array('<div><br class="'.$codigoU.'"><input type="button"class=="'.$codigoU.'"></div><input type="text" class="tex" value="" placeholder="Eti"></div><br class="'.$codigoU.'"><br class="'.$codigoU.'">', '</div></div></div></div>'),$info); 

はstr_replaceメソッドはその値だけ増分される$変数コードの原因となる試合に遭遇したときに関数を呼び出す方法があるだろう、私のコードですか?

それはこのようなものになります。それを行うための別の方法があれば、私はネット上でそれを発見していない、私はその変数を増やす必要があるだろうと私はどのように私ができるかわからない

$codigoU ++; 

をそれをやる。

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

答えて

1

があり、「試合に遭遇した」ためstr_replace()へのコールバックではなく、あなたできcount the number of occurrences of a substring within a stringそれらの出現を交換する前に。次のようなものがあります:

$codigoU += substr_count($your_substring, $your_string); 

あなたは配列を使用しているので、ループでこれを行う必要があります。これはあなたの$info文字列の各試合のために$codigoUをインクリメントう

$substrings = array('</p><div', '</div></div>'); 
foreach ($substrings as $substring) { 
    $codigoU += substr_count($substring, $info); 
} 

:のようなもの。マッチを数えたら、現在のように文字列の置換を実行します。

+0

この例を拡張できますか?私はそれを理解することができません、非常にデビッドありがとう。 – PlayerWet

+0

@PlayerWet:理解していない部分がありますか?このコードでは、置換する各部分文字列の変数に部分文字列の数を追加するだけです。 – David

+0

@Davidの結果は非常に奇妙です。私はループを試しましたが、変数を増やしません。ループは配列の各要素に2つの周回を与えますか? 変数の結果はまだ1000です。私の不器用さは申し訳ありません。 :S – PlayerWet

関連する問題