Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : "eregi_replace" 5kb Datei zu Rechenintensiv ?



dadie
26.12.2006, 14:29
Hallo meine lieben Webentwickler und Webentwicklerinen :)

Nach Monaten wenn nicht genzlich nach jahren der Abstinenz wage ich mich mal wieder an etwas Webdev.Ich muss zugeben ich habe einiges verlernt und vorallem replace machen mir gerade zu schaffen.Nunja ich will nicht lange drum herumreden.

Das Problem sieht so aus , ich habe eine Templates Datei , die "5" Templates enthält


<TH!>"Tabelen-Head"<TH!>
<TBL!>"Tabelen-Body-login"<TBL!>
<TBC!>"Tabelen-Body-Login-count"<TBC!>
<TBG!>"Tabelen-Body-Gast"<TBG!>
<TF!>"Tabelen-Foot"<TF!>


Nun will ich "intern" diese eine Template Datei aufspalten.
Bislang versuche ich es mit folgendem code :

eregi_replace("(.*)<TH!>(.*)<TH!>(.*)", "\\2", $template);
(usw.)

Ich habe zwar schon an preg_replace gedacht aber da bekomm ich noch schlimmere Performance :(

Das Problem ist genzlich , sollange nur 1 (.*) drin ist/währe , rechnet das ganze sehr fix , aber sobald ich ein 2tes oder 3tes hinzufüge um eben die einzellnen Spalten auszulesen , Geht die Performance schon bei 1 Zugriff in die Hose und meine CPU rechnett sich halb tot :'(

Also , was ich dann mal so "einfach" fragen will ist folgendes , liegt es daran das die Temp datei zu Gross ist oder liegt es daran das ich sowas von schlechte Replace ?

Ich könnte zwar das ganze auch in 4 Temp datein auslagern , hätte es aber lieber gerne in 1er Da es sich um einzusammenhängendes Gerüsst handelt.

Naja ich baue mal auf unsere Guten Alten Hardcore WEBDev'er/inen :D

See ya Dadie

mitaki
26.12.2006, 14:59
Ich habe zwar schon an preg_replace gedacht aber da bekomm ich noch schlimmere Performance
Tatsächlich? preg_*-Funktionen sind eigentlich wesentlich schneller als eregi_*-Funktionen.


Das Problem ist genzlich , sollange nur 1 (.*) drin ist/währe , rechnet das ganze sehr fix , aber sobald ich ein 2tes oder 3tes hinzufüge um eben die einzellnen Spalten auszulesen , Geht die Performance schon bei 1 Zugriff in die Hose und meine CPU rechnett sich halb tot :'(

Das erste und das letzte (.*) kannst du doch eigentlich weglassen (zumindest bei der preg-Variante), da du ja nicht angibst, dass <!TH> ganz am Anfang oder ganz am Ende steht.
Eventuell macht es auch Probleme, dass du zwei Mal <!TH> verwendest anstatt z.B. <!TH> und </!TH>.

Das ganze scheint ein Loginformular in einer Tabelle zu werden?
Verwende doch mal eine Definitionsliste für Beschriftung und Eingabefelder, daran hast du bestimmt auch deinen Spaß.

dadie
26.12.2006, 15:33
Irgendwie , wie in alten zeiten :)

mitaki , habe es zwar etwas anderrs gelöst aber du hast mir ne tolle gedanken hilfe gegeben.Wenn man dich nicht hätte :kiss:

Es hat im übrigen im entferntesten etwas mit Login zu tun xD
Soll eigendlich eine Tabele werden , die Dynamisch jeh nach user anderrs aussieht bzw. anderre Werte einzeigt bzw. andersstruckturiert werden muss.Aber was es genau wird sage ich noch nicht weil ich jetzt schon seid ~6 Monaten dran Arbeite und atm schon beim 3tem CMS Versuch bin.

ps.Kennt ihr das eigendlich auch , ihr fang mit einem Script an , macht ne "Pause" und dann seht ihr euch den Code an und denkt euch "WTF" was'n das fürn müll ~.~''

pps.Bin nur ich der meinung oder sieht "if(): else: endif; wirklich schöner aus als die {} Lösung ?

mitaki
26.12.2006, 15:49
ps.Kennt ihr das eigendlich auch , ihr fang mit einem Script an , macht ne "Pause" und dann seht ihr euch den Code an und denkt euch "WTF" was'n das fürn müll ~.~''
Jain, je nachdem was du gerade meinst. Einserseits verbessere ich viel Code nach einer Pause, weil ich sofort sehe, dass man bestimmte Dinge besser lösen kann.
Andererseits schreibe ich auch einige Kommentare in den Quelltext, damit ich später noch weiß, was genau da gemacht wird.


pps.Bin nur ich der meinung oder sieht "if(): else: endif; wirklich schöner aus als die {} Lösung ?
Ob es schöner ist weiß ich nicht. Ich bevorzuge die Variante aber, weil ich dann genau sagen kann, dass bei endif; auch Ende ist und sich mehrere Zweige nicht in die Quere kommen, wie es mir mit den geschweiften Klammern hin und wieder passiert.

Hisoka
27.12.2006, 08:46
Irgendwie , wie in alten zeiten :)

pps.Bin nur ich der meinung oder sieht "if(): else: endif; wirklich schöner aus als die {} Lösung ?
Ich mag diese Basic artige Syntax irgendwie gar nicht. Außerdem soll diese Form nicht bei foreach funktionieren. Dadurch passiert es dann das sich beide Formen mischen was dann grässlich aussieht.

Also ich bleib da doch lieber bei der c ähnlichen Schreibweise.

DFYX
27.12.2006, 14:10
Ich will einfach mal behaupten, dass derjenige, der {...} unübersichtlich findet, einfach zu faul ist, um sauber einzurücken.

mitaki
27.12.2006, 16:11
Ich will einfach mal behaupten, dass derjenige, der {...} unübersichtlich findet, einfach zu faul ist, um sauber einzurücken.

Vice versa aber auch. Das ist kein Argument. Ob man nun die geschweiften Klammern verwendet oder Schlüsselwörter einsetzt ist ganz allein eine Frage des Geschmacks und des Stils. Übersichtlich kann beides sein, unübersichtlich aber auch.