andi_b: preg_replace macht nicht was ich will

Beitrag lesen

'n aamd zusammen.
ich habe mir hier eine klasse geschrieben, die gekennzeichnete links in einem text (aus db) später in echte links wandeln soll. dafür habe ich ein preg_replace mit /e genommen. die richtigen stellen werden auch gefunden, aber:

  • der counter zählt nicht mit
  • bei jeglichen nicht-wort-zeichen gibt es einen:

Parse error: parse error, unexpected '[' in e:\eigene\_web\hu\_include\model\Pregger.class.php(14) : regexp code on line 1

Fatal error: Failed evaluating code: Link_1-[4 in e:\eigene\_web\hu\_include\model\Pregger.class.php on line 14

hier mal der relevante teil der klasse:

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

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

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

warum wird die rückgabe (der ersetzte teil) nochmal von dem pregger bearbeitet?
wie soll ich das denn machen?

bin echt ratlos...

danke, andi