andi_b: preg_replace mit counter [2]

moijen,
hab weiter unten schon mal sowas ähnliches gepostet, aber wegen dummer antworten und dringlichkeit der frage nochmal...
ich möchte aus db-abfragen die links heraus-preggen, so dass im text nur noch laufende nummern f+r jeden link stehen (siehe z.b. heise.de). dazu habe ich folgende funktion:

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

$search = "/([<)([1-9>[0-9]{0,5})(]])/";
  $returnArray = preg_replace($search, $this->privateLinkSetter('\2'), $inputArticle);
  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.
resultierendes problem: der counter ist überall gleich.

gibt es hierzu einen trick, oder muss ich die replace-funktion immer auf eins beschränken und dann jedesmal den rückgabewert vergleichen? das wäre ja wohl ziemlich ressourcenintensive, wa?

heissen dank, andi

  1. Huhu andi_b

    hab weiter unten schon mal sowas ähnliches gepostet, aber wegen dummer antworten und dringlichkeit der frage nochmal...

    ... bleibt es trotzdem ein Doppelposting.

    [pref:t=71509&m=411644]

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday