php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben || php-forumjetzt anmelden
 

PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-12-2006, 18:10
chri91
 Newbie
Links : Onlinestatus : chri91 ist offline
Registriert seit: Jul 2006
Beiträge: 20
chri91 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Loops: Regex mit Positionsangabe

hi

ich schreibe gerade so eine art parser für loops (schleifen). darin soll eben ein markierter bereich wiederholt werden, z. b.:
Code:
Das ist ein... {LOOP<}Text {>LOOP}
"Text" soll 10 mal wiederholt werden. Da könnte aber auch etwas anderes stehen. es geht eben darum, das der parser die stelle erkennt und den loops ausführt. der parser soll den text von anfang bis ende "durchparsen". es gibt nämlich noch ein paar andere sachen im parser, für die die reihenfolge wichtig ist. also einfach den text ersetzen wäre nicht sinnvoll.

am besten ist es, wenn der parser den muster mit einem regulären ausdruck erkennt ({LOOP<}Text {>LOOP}) und dann die entsprechende position im text zurückgibt, also z. b. "der text {LOOP<}Text {>LOOP} bedindet sich bei zeichen 10 bis zeichen 29".

wie kann ich sowas in php machen?
Mit Zitat antworten
  #2 (permalink)  
Alt 22-12-2006, 22:17
jmc
 PHP Junior
Links : Onlinestatus : jmc ist offline
Registriert seit: Mar 2006
Beiträge: 868
jmc befindet sich auf einem aufstrebenden Ast
Standard

z.B. so wenn du eine einfache Variante möchtest:
preg_replace("/\{LOOP<\}(.*?)\{>LOOP\}/","$1$1$1$1$1$1$1$1$1$1",$string)

Das wäre das einfache Ersetzen. Warum ist das in deinem Fall nicht sinnvoll?
Wenn du eine andere Variante möchtest wäre es gut, wenn du dein Problem ein bisschen genauer beschreiben würdest.
Mit Zitat antworten
  #3 (permalink)  
Alt 22-12-2006, 23:17
chri91
 Newbie
Links : Onlinestatus : chri91 ist offline
Registriert seit: Jul 2006
Beiträge: 20
chri91 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich vereinfache das beispiel mal. also der parser macht folgendes. aus dem z. B.:
Code:
Text 1 Text 1 Text 1 Text 1 Text 1 [LOOP]Wiederholung 1 Wiederholung 1 [VAR:titel] Wiederholung 1[/LOOP]Text 2 Text 2
soll das werden:
PHP-Code:
Array
(
    [
TEXT_1] => Text 1 Text 1 Text 1 Text 1 Text 1 
    
[LOOP_1] => Array
        (
            [
TEXT_2] => Wiederholung 1 Wiederholung 1
            
[VAR_1] => titel
            
[TEXT_3] => Wiederholung 1
        
)

    [
TEXT_4] => Text 2 Text 2

das template wird eingelesen und die strukturen (loop, var) sollen nacheinander in das array eingespeist werden.

ich denke das geht am besten mit einem regex. damit die strukturen aber in der richtigen reihenfolge im array stehen, muss der parser den string ja von anfang bis ende "durchparsen", damit die verschachtelungen ([LOOP]..[/LOOP]) berücksichtigt werden.

wie kann ich sowas machen?
Mit Zitat antworten
  #4 (permalink)  
Alt 24-12-2006, 01:37
3DMax
 PHP Senior
Links : Onlinestatus : 3DMax ist offline
Registriert seit: Jan 2004
Beiträge: 1.916
3DMax ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Loops: Regex mit Positionsangabe

Zitat:
Original geschrieben von chri91
am besten ist es, wenn der parser den muster mit einem regulären ausdruck erkennt ({LOOP<}Text {>LOOP}) und dann die entsprechende position im text zurückgibt, also z. b. "der text {LOOP<}Text {>LOOP} bedindet sich bei zeichen 10 bis zeichen 29".

wie kann ich sowas in php machen?
positionen kanst du mit strpos() herausfinden.
per regex würde ich preg_match_all() bevorzugen
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Warum Texterstellung mit künstlicher Intelligenz richtig gut ist
Warum Texterstellung mit künstlicher Intelligenz richtig gut istKünstliche Intelligenz ist dabei, die Welt zu erobern. Die größten Unternehmen entwickeln Systeme, die einen Text für Sie schreiben können. Und sie machen das sehr gut.

05.01.2022 | Berni

Vorteile eines flexiblen ERP Systems
Vorteile eines flexiblen ERP SystemsEin flexibles ERP System bietet in allen Unternehmensbereichen die Grundlage für eine erfolgreiche Verwaltung, Organisation und Planung aller Prozesse.

01.12.2021 | Berni


 

Aktuelle PHP Scripte

Homepagetools 2022

Kostenloses Gästebuch und Homepagetools für die eigene Homepage. Bei GuxDu kann man sich kostenlos die Websitetools auf die vorhandene Website einbauen. Zudem kann man bei GuxDU auch eine eigene Homepage mit 3D Effekten erstellen. GuxDu ist kostenlos.

29.04.2022 freepler | Kategorie: PHP/ Gaestebuch
SF-Shopsystem V1.0

Hier haben wir ein einzigartiges Shopsystem in PHP. Die Anzahl der Artikel ist unbegrenzt, einfach zu bedienen und erklärt sich. Ausführliche Beschreibung weiter unten.

28.04.2022 Speedcrawler | Kategorie: PHP/ Shops
Anzeigen Markt mit PayPal Bezahl System

Anzeigen Markt Script mit PayPal Bezahl System Der Benutzer hat die Möglichkeit sofort nach Bezahlung mit PayPal seine Anzeigen zu schalten, je nach seinem Guthaben.

27.04.2022 Webace_de | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:12 Uhr.