php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 21.07.2011, 17:16  
Neuer Benutzer
 
Registriert seit: 21.07.2011
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
Whitefoot befindet sich auf einem aufstrebenden Ast
Standard Probleme mit Umsetzung von Tabellen (CMS)

Ich bin dabei mein altes CMS zu überarbeiten. Tabellen haben mir schon zuvor ein Problem bereitet und löste es durch verwenden von Schleifen, substr und explode. Es wäre mir lieber wenn ich die Tabellen durch Einsatz von regulären Ausdrücken umsetzen könnte, jedoch stoße ich damit auf Probleme. Der Inhalt von den Tabellen ist folgendermaßen aufgebaut:
{{table:width;
z1s1|z1s2|z1s3
z2s1|z2s2|z2s3
}}
z für Zeile und s für Spalte. Die Angabe der Breite ist optional.

Das Problem habe ich beim erstellen der tr-tags. Ich habe es mit folgenden Zeilen versucht (Ausschnitt aus einer PHP-Klasse; table-tag wird zuvor eingefügt):
PHP-Code:
        do{
            
$buff $this->content_formatted;
            
$this->content_formatted preg_replace"/<table([(.+)]*)>(.+)\n(.+)\n(.*)<\/table>/isU",
                    
"<table$1>$2<tr>$3</tr>$4</table>",
                    
$this->content_formatted );
        }while( 
$buff != $this->content_formatted ); 
Soweit ich das sehe müsste dies eigentlich funktionieren, jedoch bleibt der Inhalt der Seite bei diesem Script komplett leer. Lasse ich die Schleife weg, ist der Inhalt wieder da, aber nur die erste Zeile wird von einen tr umgeben.
Ich kenne mich leider noch nicht allzu gut mit regulären Ausdrücken aus und wäre dankbar wenn mir jemand helfen könnte. Ich glaube ein ganz anderer Ansatz zur Umsetzung wäre wohl besser..
Whitefoot ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 21.07.2011, 18:41  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

1. <... > matched wohl nie auf {{...}}
2. Das ist irgenwie nur halbherzig realisiert...

Ich würde 3 Schritte erzeugen:
- Per preg_match die Daten Extrahieren
- Daten validieren
- Entsprechendes html an der Stelle wo ich die Daten hergeholt hab replacen..

Um die ganze sache etwas solider zu machen müsste ich klare "Grundsätze" für die Shortenizings haben, z.b.:
- {{ öffnende Instruktion
- }} schließende Instruktion
- {{ erwartet ein Schlüsselwort als sofort folgende Zeichenkette, z.b. "Table", "Div", "Box"
- }} erwartet eine Zeichenkette als Styleinformationen eingefasst in ' ' als unmittelbar vorstehnder String
- | trennt, beginnt und lässt den Zellen-Kontex beenden
- |-| "span"nt Zellen
- |+| erzeugt ein neues row

Dabei sollte meinem Regex es absolut egal sein ob dort Zeilenumbrüche genutzt werden oder nicht, eine Beispiel-Shortenizing:
Code:
{{table
| hello | world |+
|-| i am |+
|-| tr0y |
'width:200px;'}}
erzeugt:
HTML-Code:
<table style="width:200px">
   <tr>
      <td>hello</td><td>world</td>
   </tr>
   <tr>
      <td colspan="2">i am</td>
   </tr>
   <tr>
      <td colspan="2">tr0y</td>
   </tr>
</table> 
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 21.07.2011, 19:22  
Neuer Benutzer
 
Registriert seit: 21.07.2011
Beiträge: 2
PHP-Kenntnisse:
Fortgeschritten
Whitefoot befindet sich auf einem aufstrebenden Ast
Standard

@tr0y Zu deinen 1. : Ich schrieb bereits, dass der table-tag zuvor eingefügt wird, sprich die Tabelle wird samt Breitenangabe (sofern vorhanden) durch ein preg_replace ersetzt... Daher passt das schon.

Mein altes Script erstellt aus einer Tabelle die so aussieht (wie zuvor erwähnt ist die width Angabe optional):
Code:
{{table
Hello | World
How are |
you? |
}}
folgendes:

Code:
<table>
<tr><td>Hello</td><td>World</td></tr>
<tr><td colspan="2">How are</td></tr>
<tr><td colspan="2">you?</td></tr>
</table>
Das alte Script ist mittlerweile mehr als 2 Jahre alt und damals war ich noch froh, dass ich es irgendwie hinbekommen habe, deswegen gibt es in dem noch keine Einrückung. Es setzt auch den colspan automatisch.
Ich würde auch gerne bei meiner Struktur bleiben, da ich nicht alle Tabellen auf der gesamten Webseite ändern möchte.
Whitefoot ist offline   Mit Zitat antworten
Alt 25.07.2011, 00:59  
Erfahrener Benutzer
 
Registriert seit: 12.05.2005
Beiträge: 1.038
PHP-Kenntnisse:
Fortgeschritten
notyyy befindet sich auf einem aufstrebenden Ast
Standard

ich kann sowas nicht verstehen, vielleicht kann es mir hier jemand erklären.

du möchtest kein xml (oder html) in der datenbank stehen haben, drum denkst du dir deine eigene templatesprache aus.

damit hast du es nun geschafft eine metasprache gegen eine unbekanntere (demnach schlechtere) metasprache zu tauschen. ich verstehe den sinn dahinter nicht.

nicht falsch verstehen, ich bin dagegen html in der datenbank zu haben, aber ich finde es weitaus dramatischer eine selbsterdachte metasprache in die datenbank zu schreiben. du hast weiterhin nachteile ohne ende und dadurch, dass du eine nicht standardisierte lösung bevorzugst nur noch mehr probleme.
notyyy ist offline   Mit Zitat antworten
Alt 25.07.2011, 01:18  
Benutzer
 
Registriert seit: 25.07.2011
Beiträge: 42
PHP-Kenntnisse:
Fortgeschritten
payne_of_death befindet sich auf einem aufstrebenden Ast
Standard

http://regexp-evaluator.de/

Hier kannst Du Dir interaktiv Regexp beibringen. Über die Sinnhaftigkeit von "Rad neu erfinden" enthalte ich mich lieber, bevor ich wieder geneigt bin böse Kommentare zu schreiben.
payne_of_death ist offline   Mit Zitat antworten
Alt 25.07.2011, 01:26  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Über die Sinnhaftigkeit von "Rad neu erfinden" enthalte ich mich lieber, bevor ich wieder geneigt bin böse Kommentare zu schreiben.
wieder?
Zitat:
Beiträge: 1
@TE: Warum benutzt Du nicht einfach Textile o.ä.?
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline   Mit Zitat antworten
Alt 25.07.2011, 01:28  
Benutzer
 
Registriert seit: 25.07.2011
Beiträge: 42
PHP-Kenntnisse:
Fortgeschritten
payne_of_death befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
wieder?
ich war noch nie hier, da ich aber harte Communities gewöhnt bin und mal was Neues ausprobiere.

Eben die Aussage
payne_of_death ist offline   Mit Zitat antworten
Alt 26.07.2011, 15:45  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

php.de ist weit entfernt von "harte Community"..
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Alt 26.07.2011, 23:57  
Benutzer
 
Registriert seit: 25.07.2011
Beiträge: 42
PHP-Kenntnisse:
Fortgeschritten
payne_of_death befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von tr0y Beitrag anzeigen
php.de ist weit entfernt von "harte Community"..
Dann bin ich ja richtig
payne_of_death ist offline   Mit Zitat antworten
Alt 27.07.2011, 06:31  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von payne_of_death Beitrag anzeigen
Dann bin ich ja richtig
Das werden wir rausfinden, bleibts bei Grün: Ja, gehts Richtung Rot: Nein

Rock on!
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist gerade online   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] verständnisfrage CMS d0ne Off-Topic Diskussionen 4 25.05.2010 06:44
gelöst: Datenbankabfrage über 3 Tabellen lord_icon Datenbanken 0 12.10.2009 00:38
[Erledigt] Probleme mit html tabellen peschels PHP Tipps 2009 25 20.09.2009 09:51
tabellen oder div SteiniKeule PHP Tipps 2009 29 27.08.2009 16:51
Eigenes CMS Moep PHP Tipps 2009 12 06.08.2009 23:00
[Erledigt] Mehrere MySQL Tabellen mit PHP abfragen DonMuchacho Datenbanken 7 27.07.2009 19:47
Tabellen miteinander verknüpfen Suzi Datenbanken 12 27.05.2009 11:40
[S] erfahrene Coder für eigenes CMS DarkSky25 Beitragsarchiv 14 31.03.2009 12:06
[Erledigt] Probleme bei Erstellung von Indexfeld in DB Moguai Datenbanken 9 13.11.2008 14:46
[Erledigt] Limit auf Ergebnissumme mehrerer Tabellen Frank Datenbanken 8 02.09.2008 11:33
Tabellen für Vokabeltrainer anlegen... anonym01 PHP Tipps 2008 9 03.03.2008 21:18
probleme mit mysql tabellen! fadass Datenbanken 6 13.07.2005 09:20
[Erledigt] probleme mit Tabellen befüllen Datenbanken 5 31.08.2004 20:55
[Erledigt] fulltext suche priorität von tabellen setzen Datenbanken 1 09.08.2004 15:26
Probleme mit css in Tabellen b.z.w. Zellen scheibo HTML, Usability und Barrierefreiheit 5 20.06.2004 21:17


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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum