lulu: preg_replace macht nicht was ich will

Beitrag lesen

Huhu andi_b

(Zur Info, das Code-Beispiel auf das ich mich beziehe ist leider in einem anderen Thred (die übliche Doppelpostingproblematik))
[pref:t=71533&m=411827]

function findArticleReferences($inputArticle){
  $returnArray = array();

wieso ist das ein Array ...

$search = "/([<)([1-9>[0-9]{0,5})(]])/";
  $returnArray = preg_replace($search,$this->privateLinkSetter('\2'), $inputArticle);

... wenn hier ein String zugewiesen wird?

return $returnArray;
 }

function privateLinkSetter($link){
  ++$this->counter;
  return "Link_[" . $link . "]:" . $this->counter;
 }

geht alles wunderbar, ABER die funktion 'privateLinkSetter' wird nur einmal _vor_ der ausführung des preg_replace aufgerufen.

so ist es ja auch richtig.

resultierendes problem: der counter ist überall gleich.

gibt es hierzu einen trick, [...]?

In Deinem ersten Posting warst Du eigentlich auf dem "richtigeren"
Weg mit dem /e -Modifier.

probier mal folgendes

function findArticleReferences($inputArticle)
 {
  $s = '';
  $search = "/([<)([1-9>[0-9]{0,5})(]])/e";
  $s = preg_replace($search, "$this->privateLinkSetter('\2')", $inputArticle);
  return $s;
 }

Viele Grüße

lulu

--
bythewaythewebsuxgoofflineandenjoytheday