私はphpでこのコードを持っています - :
function pregRepler($matches)
{
* do something
}
$str = preg_replace_callback($reg_exp,'pregRepler',$str);
function にいるとき、最初の一致か2番目の一致かなどpregRepler
、現在の状態を知りたいと思います...match number
どうすればいいのですか。??
私はphpでこのコードを持っています - :
function pregRepler($matches)
{
* do something
}
$str = preg_replace_callback($reg_exp,'pregRepler',$str);
function にいるとき、最初の一致か2番目の一致かなどpregRepler
、現在の状態を知りたいと思います...match number
どうすればいいのですか。??
$count
たとえば、変数エイリアスを使用して、両方の変数スコープ間で変数を共有する必要があります。
$callback = function($matches) use (&$count) {
$count++;
return sprintf("<%d:%s>", $count, $matches[0]);
};
echo preg_replace_callback($pattern, $callback , $subject, $limit = -1, $count);
呼び出す前$count
は 0 です。呼び出した後$count
は、行われた置換の数に設定されます。その間に、コールバックでカウントアップできます。もう一度呼び出すときに、もう一度ゼロに設定することもできます。
http://php.net/preg_replace_callbackを参照してください
$repled = 0;
function pregRepler($matches)
{
* do something
global $repled;
$repled++;
}
$str = preg_replace_callback($reg_exp,'pregRepler',$str);
グローバル変数からカウントするだけです。