PHP如何正确替换函数上的文本?

时间:2014-06-03 13:46:39

标签: php

private function Photo($m,$photo){

  if($m == 'print'){
    print $photo; // or echo
  }
  else {
    return $photo;
  }
}

private function GetText(){
  ...
  ...
  $i = $res->fetch_assoc();
  $Text = $i["Text"];

    Now `$Text` have next:

     html text
     ....
     <p>%photo(2)%</p>
     <p>%photo(3)%</p>
     <p>%photo(4)%</p>
     ...
     html text

  echo $Text;
}

我想在函数%photo(N)%(或函数N)上替换文本Photo($m,N)(其中Photo(N) - 任意数字)。

为此,我使用代码:

$Text = preg_replace_callback("/\{photo\((\d+)\)\}/","Photo",$Text);

但它不起作用......

请告诉我怎么做?

P.S。:在替换$Text后,我的例子应该是下一个:

html text
....
<p>2</p>
<p>3</p>
<p>4</p>
...
html text

1 个答案:

答案 0 :(得分:1)

Photo是类的方法,而不是函数本身。

尝试:

$Text = preg_replace_callback("/\{photo\((\d+)\)\}/",array($this,"Photo"),$Text);

有关callable typehint的更多信息,请查看documentation