preg_replace mit counter [2]
andi_b
- php
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
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