Seite 1 von 1

Dynamisches str_replace

Verfasst: 19.06.2007, 15:33
von sddfg
Sorry für den komischen Titel, aber mir ist kein besserer eingefallen. Folgendes Problem:

Ich habe einen String in dem ich einen bestimmten Platzhalter ersetzten möchte. Dabei wird eine Zahl an das neue Wort angefügt, allerdings wird diese bei jedem auftreten um 1 ehöht. Folgendes habe ich ausprobiert:

Code: Alles auswählen

<?php
$content = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, &#91;code&#93;sed diam voluptua&#91;/code&#93;. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.

Duis autem vel eum &#91;code&#93;iriure dolor in hendrerit in&#91;/code&#93; vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue duis dolore te feugait &#91;code&#93;nulla facilisi. Lorem ipsum dolor sit amet, con&#91;/code&#93;sectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat.';

$i = 0;
echo str_replace&#40;array&#40;'&#91;code&#93;', '&#91;/code&#93;'&#41;, array&#40;'<code id="' .$i++ . '">', '</code>'&#41;, $content&#41;;
?>
Allerdings funktioniert dass ganze nicht: Der Tag Code bekommt jedes Mal die ID 0! Hat vielleicht jemand ne Idee dazu?

Verfasst:
von
Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Verfasst: 19.06.2007, 20:39
von magadoo
Probier mal folgenden Code:

Code: Alles auswählen

$i=0;
echo preg_replace&#40;'/\&#91;code\&#93;&#40;&#91;^\&#91;&#93;+&#41;\&#91;\/code\&#93;/ie','"<code id=".&#40;$i++&#41;.">$1</code>"',$content&#41;;

Verfasst: 19.06.2007, 21:20
von sddfg
Hmm, klappt noch nicht so ganz. Wenn in dem Code eine Variable enthalten ist, dann gibt es eine Fehlermeldung, aber wenn ich den Modifikator /e rausnehme funktioniert es nicht mehr..

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 20.06.2007, 07:14
von auftragslinker
$i=0;
while (strpos($content,"

Code: Alles auswählen

")) {
  echo str_replace(array('&#91;code&#93;', '&#91;/code&#93;'), array('<code id="' .$i . '">', '</code>'), $content); 
  $i++;
}


???

Verfasst: 20.06.2007, 07:34
von alpening
so viel wie ich weiß kannst du eine variable nur in einer schleife oder als aufrufe einer funktion aufaddieren.

Verfasst: 20.06.2007, 13:03
von magadoo
alpening hat geschrieben:so viel wie ich weiß kannst du eine variable nur in einer schleife oder als aufrufe einer funktion aufaddieren.
Naja das Addieren hat bei meinem Code schon geklappt, nur an der RegExp muss man wohl noch etwas schrauben.

Verfasst: 21.06.2007, 15:03
von sddfg
Nunja, mit einer Schleife habe ich es jetzt auch hinbekommen. Nur ist halt die Frage was performanter ist. Ein Regulärer Ausdruck oder eine Schleife ..