mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 19.04.2024 07:09 Benutzername: Passwort: Auto-Login

Thema: PHP Tags ersetzen vom 01.08.2007


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> PHP Tags ersetzen
Autor Nachricht
marcusm
Threadersteller

Dabei seit: 06.05.2002
Ort: europa
Alter: 46
Geschlecht: Männlich
Verfasst Mi 01.08.2007 17:16
Titel

PHP Tags ersetzen

Antworten mit Zitat Zum Seitenanfang

Hallo zusammen,

ganz so einfach ist es wohl nicht wie der Titel vermuten läßt. Ich möchte gerne per ereg_replace()
aus einem String Zeichenketten wie zum Beispiel:
Code:
%%%<block::sub::single>%%%
    <html-tags>Text</html-tags>
%%%</block::sub::single>%%%

entfernen.
Irgendwie hab ich gerade nen gesamten Wald vor dem Kopf...
Mein Versuch sieht bisher so aus:
Code:
$muster='/%%%<'.$value[1].'>%%%(.*?)%%%</'.$value[1].'>%%%/';
$content_template=ereg_replace($muster, "", $content_template);


In $value[1] steht dann natürlich block::sub::single

Mein Versuch wird vom Parser mit "Warning: ereg_replace(): REG_BADRPT ..." quittiert.

Kann jemand helfen?
Danke
Marcus
  View user's profile Private Nachricht senden
kaputt

Dabei seit: 08.05.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 01.08.2007 17:36
Titel

Antworten mit Zitat Zum Seitenanfang

$bla = str_replace('%%%<', '', $orig_string);
$bla = str_replace('%%%>', '', $orig_string);

?
  View user's profile Private Nachricht senden
Anzeige
Anzeige
marcusm
Threadersteller

Dabei seit: 06.05.2002
Ort: europa
Alter: 46
Geschlecht: Männlich
Verfasst Mi 01.08.2007 17:53
Titel

Antworten mit Zitat Zum Seitenanfang

Hi peBBo,

das nutzt mir leider überhaupt nicht, das wäre auch kein Problem gewesen. Du entfernst so ja lediglich die "Einfassungs-Tags" des Blocks und läßt alles was zwischen steht außer acht. Das sollte natürlich mit entfernt werden.

Also am Beispiel erklärt machste aus:
Code:
%%%<html-tag>%%%  Hier steht <strong>fetter</strong> Text  %%%</html-tag>%%%


dann das hier:
Code:
Hier steht <strong>fetter</strong> Text


Hilft mir also leider nicht weiter, trotzdem Danke...


Zuletzt bearbeitet von marcusm am Mi 01.08.2007 17:54, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 01.08.2007 18:12
Titel

Antworten mit Zitat Zum Seitenanfang

Ich verstehe gerade nicht was du erreichen willst, erklär das auch mal an
einem Beispiel bitte.


Zuletzt bearbeitet von m am Mi 01.08.2007 18:20, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
marcusm
Threadersteller

Dabei seit: 06.05.2002
Ort: europa
Alter: 46
Geschlecht: Männlich
Verfasst Mi 01.08.2007 18:40
Titel

Antworten mit Zitat Zum Seitenanfang

Einfach erklärt möchte ich eine variable Zeichenkette mitsamt den umklammernden Markern entfernen.

Es ist ein kleines Template-Systemchen das ein HTML-Template nach meinen Markern durchsucht und wenn entsprechende Inhalte vorhanden sind und ersetzt. Die Marker ersetzen praktisch Divs mit darin liegenden Elementen.
Das ganze läuft als Schleife (foreach), in der vorweg gesuchte und in einem Array gespeicherte Marker durchlaufen werden. In der Schleife gibts ne if/else Struktur die prüft ob zum aktuellen Marker Content vorhanden ist, falls nicht,
soll dieser Marker-Block der so aussehen kann:
Code:
%%%<vorname_block::sub::single>%%%
            <label for="input_vorname"></label><br />            
         %%%</vorname_block::sub::single>%%%

gelöscht werden.
Die Marker mit %%% vorne und hinten bilden den Block der ggf. durch div-Tags ersetzt wird und zwischen diesen kann dann alles mögliche stehen.

Mein Problem ist der reguläre Ausdruck, der es mir ermöglicht diesen Block mit flexiblen Inhalt, z.B. verschiedene unbekannte Label-tags oder Texte etc. durch nichts "" zu ersetzen, quasi zu löschen.
  View user's profile Private Nachricht senden
m
Moderator

Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mi 01.08.2007 23:21
Titel

Antworten mit Zitat Zum Seitenanfang

Reguläre Ausdrücke sind auch nicht so mein Ding, aber so sollte es doch eigentlich funktionieren:

Code:
   $block = "%%%<vorname_block::sub::single>%%%<label for=\"input_vorname\"></label><br />%%%</vorname_block::sub::single>%%%";
   
   echo preg_replace("/%%%(.*)%%%/", '', $block);


Keine Ahnung ob das eine gute Lösung ist oder ob man es viel besser machen kann.
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
marcusm
Threadersteller

Dabei seit: 06.05.2002
Ort: europa
Alter: 46
Geschlecht: Männlich
Verfasst Do 02.08.2007 00:27
Titel

Antworten mit Zitat Zum Seitenanfang

Dank Dir m für Deine Mühen...

Allerdings funktioniert der Code so nicht. Da fehlt ein Fragezeichen:
Code:
preg_replace("/%%%(.*?)%%%/", '', $block);


Nun entfernt er zwar die Marker die den Block selbst bilden aber alles zwischen den beiden Markern bleibt stehen.

Habe die Lösung gerade selber gefunden, ist zwar wie wenn der Zahnarzt durch den Hintern durch Zähne zieht,
aber es funktioniert einwandfrei! * Wo bin ich? *

Code:
$startmuster="%%%<block>%%%";
$endmuster="%%%</block>%%%";
               
$start_pos=strpos($content_template, $startmuster);
$end_pos=strpos($content_template, $endmuster);
               
$laenge=$end_pos - $start_pos + strlen($endmuster);
$content_template=substr_replace($content_template, "", $start_pos, $laenge);


Einen regulären Ausdruck hätte ich eleganter gefunden, aber was solls...

Dank Euch
  View user's profile Private Nachricht senden
Account gelöscht


Ort: -
Alter: -
Verfasst Do 02.08.2007 02:53
Titel

Antworten mit Zitat Zum Seitenanfang

geht nicht nur mit regex. (übrigens ist die syntax da grauenhaft). Du musst n Tokenizer schreiben. Schau dir mal das Ergebnis von der Funktion parse_into_struct() an, dann weißte was ich mein'. Sobald Verschachtelungen geparst werden, kommste "nur" mit regex nicht weiter.
 
 
Ähnliche Themen Was für ein Editor um Tags über mehrere Zeilen ersetzen?
TH Tags in Dreamweaver MX
div tags dreamweaver
Meta Tags
Div Tags Nachteile
Frage zu div-tags
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.