| 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! Post your PHP questions here! |
 |
|

02-03-2011, 08:53
|
|
Onyxagargaryll
Registrierter Benutzer
|
|
Registriert seit: Nov 2007
Ort: Schweiz
Beiträge: 239
|
|
JavaScript analysieren
Hi
Ich möchte JavaScript code in ein PHP array umwandeln. Beispiel:
Code:
themap = new MapTalk(); themap.add(heroclass+'portrait.jpg','So! Are those mushrooms any good?').addEvent('onComplete', function() { /*even more js code */ });map_herotransfer(10,14,true);
PHP-Code:
Array
(
[0] => Array
(
['event'] => 'themap = new MapTalk(); themap.add(heroclass+"portrait.jpg","Are those any good?")'
['followers'] => Array
(
[0] => '/*even more js code*/'
)
)
[1] => Array
(
['event'] => 'map_herotransfer(10,14,true)'
)
)
- Diese JavaScript 'Blöcke' (z.B. "map_herotransfer(?,?,?)" oder "themap = new MapTalk(); themap.add(......)") haben stets die gleiche Syntax.
- Praktisch alle Blöcke können 'onComplete'-events, also 'followers' haben
Was wäre die beste Möglichkeit, diese Aufgabe anzugehen?
Vielen Dank im Voraus für eure Hilfe!
Gruss
Roman
|

02-03-2011, 11:21
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Wozu soll das gut sein, was hast du vor?
Was hindert dich daran, das JS anhand der immer gleichen Syntax in ein Array zu zerlegen?
|

02-03-2011, 11:37
|
|
Onyxagargaryll
Registrierter Benutzer
|
|
Registriert seit: Nov 2007
Ort: Schweiz
Beiträge: 239
|
|
Hallo onemorenerd
Mehr Informationen kann ich liefern
Das Problem ist u.a.: Wo ist es fertig?
Wenn ich sowas habe wie...
Code:
[block1-1].addEvent('onComplete',function() {
[block2-1].addEvent('onComplete',function() {
[block3-1];
[block3-2];
[block3-3].addEvent('onComplete',function() {
[block4-1];
});
[block3-4];
[block3-5];
});
});
[block1-2];
[block1-3];
...welches "});" passt zu welchem ".addEvent..."?
Der letztendliche Zweck dient der grafischen Baum-Darstellung des Codes.
Das Problem ist, dass ich einen Lösungsweg suche. z.B. etwas Pseudo-Code von einem Ideengeber
das JS anhand der immer gleichen Syntax in ein Array zu zerlegen?
Was schwebt dir vor?
Danke für die Antwort, Freundliche Grüsse
Roman
|

02-03-2011, 11:53
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Wozu brauchst du eine Baumdarstellung des Codes? Geht es nur um Formatierung zur besseren Lesbarkeit (deswegen "Darstellung") oder willst du mit dem Code arbeiten (deswegen "Baum"-Struktur)?
|

02-03-2011, 12:27
|
|
Onyxagargaryll
Registrierter Benutzer
|
|
Registriert seit: Nov 2007
Ort: Schweiz
Beiträge: 239
|
|
Ich möchte damit arbeiten (Drag&Drop-Veränderung des Codes):
|

02-03-2011, 15:11
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Wenn der User dragt und dropt, musst du doch im Hintergrund mit Javascript die Struktur irgendwie abbilden und entsprechend den Code dazu generieren. Dabei kannst du doch die gewünschte Struktur für das PHP-Array gleich mit erzeugen, statt später den fertigen Code zu parsen.
|

02-03-2011, 15:45
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.324
|
|
Dynamisch Code erzeugen ist selten eine gute Idee. Warum nicht einen allgemeinen Code schreiben, der mit Daten gefüttert wird?
|

02-03-2011, 16:08
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Ich finde es eine spannende Idee, JS-Code in einer GUI zusammenstöpseln zu können. Aber der Sprung zwischen JS und PHP scheint mir hier zu kompliziert gedacht. Das Editieren geschieht beim Client und das Ergebnis ist JS-Code, der auch wieder nur beim Client ausgeführt wird. Ich sehe die Notwendigkeit nicht, zwischendurch mit PHP zu arbeiten.
|

02-03-2011, 16:46
|
|
Onyxagargaryll
Registrierter Benutzer
|
|
Registriert seit: Nov 2007
Ort: Schweiz
Beiträge: 239
|
|
Durchdacht ist das Schema bzw. die Funktionalität schon, mir fehlt nur noch der Weg zur Ausführung 
Ich kommuniziere dafür per JSON, weil auch serverseitige Blöcke und andere Mechanismen hinzugefügt werden können.
@h3ll Irgendwann & -wie muss ich den allgemeinen Code ja auch übersetzen. Wie das gemacht wird ist schlussendlich egal (ausser dass ich mir nat. bei deiner Version das GUI sparen kann)
@onemorenerd der fertige Code wird in der Datenbank gespeichert. Aus Performancegründen möchte ich den nicht zur Laufzeit parsen, sondern als ausführbaren Code zur Verfügung haben. (Der Code wird nachher von vielen Spielern gebraucht)
Ich suche weiterhin nach einer Lösungsidee - um Hilfe wäre ich sehr dankbar. (Vielleicht gits ja was wie Tidy für JavaScript, oder eine selbst zu definierende Syntax?)
|

02-03-2011, 17:05
|
 |
onemorenerd
 Moderator
|
|
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.481
|
|
Zitat:
Zitat von Onyxagargaryll
der fertige Code wird in der Datenbank gespeichert. Aus Performancegründen möchte ich den nicht zur Laufzeit parsen, sondern als ausführbaren Code zur Verfügung haben.
|
Wieso musst du den Code überhaupt parsen (mit PHP)? Es ist doch Javascript-Code oder nicht? Und du speicherst den in der DB, gibst ihn später irgendwie aus und er wird im Browser des Users ausgeführt, oder nicht?
Ich wiederhole: Ich sehe keine Notwendigkeit, mit PHP an dem Code rumzufummeln. Klär mich auf!
|

02-03-2011, 17:20
|
|
Onyxagargaryll
Registrierter Benutzer
|
|
Registriert seit: Nov 2007
Ort: Schweiz
Beiträge: 239
|
|
Das habe ich doch gerade erklärt?
Es können auch andere Blöcke (z.B. serverseitiger PHP-Code) per Drag&Drop eingefügt werden. Und, wie gesagt, ob ich die Blöcke in JS code auf der Clientseite oder der Serverseite wandle spielt (vom JS her) keine Rolle. Da ich aber auch andere Blöcke "parsen", "übersetzen" bzw. "transformieren" muss macht es Sinn, dies nicht zur Hälfte beim Client und zur Hälfte serverseitig zu machen.
Und den fertigen JS code in der DB hat den Grund, weil die Spieler oft und schnell auf solche Codefragmente zugreifen. Wenn dieser bereits übersetzt ist spare ich u.a. den Spielern viel Rechenzeit.
Ich habe die Gedanken hinter diesem Mechanismus gerne erklärt, möchte aber nicht weiter darauf eingehen.
Nochmals vielen Dank im Voraus für die Hilfe beim Suchen eines (PHP-) Lösungsansatzes.
|

02-03-2011, 17:28
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.324
|
|
Auweia. PHP-Code hat in der Datenbank noch weniger verloren. Ich glaub du verrennst dich in eine Sackgasse.
|

02-03-2011, 17:52
|
|
Onyxagargaryll
Registrierter Benutzer
|
|
Registriert seit: Nov 2007
Ort: Schweiz
Beiträge: 239
|
|
Ich habe keinen PHP Code in der Datenbank. Nur der JS-Code ist in der Datenbank.
Bitte! Bleibt bei meiner Frage.
|

02-03-2011, 17:54
|
|
h3ll
Registrierter Benutzer
|
|
Registriert seit: Mar 2008
Beiträge: 2.324
|
|
Du bist offenbar nicht an einer guten Lösung interessiert, du willst nur "deine" Lösung realisiert haben, egal ob sinnvoll oder nicht.
|

02-03-2011, 18:33
|
|
Onyxagargaryll
Registrierter Benutzer
|
|
Registriert seit: Nov 2007
Ort: Schweiz
Beiträge: 239
|
|
Ich möchte den Lösungsweg nicht diskutieren, ja, da dieser bereits oft genug Thema war. Entschuldigt meine Reaktion - ich wollte wirklich nur Hilfe bei der Ideensuche, wie das mit PHP realisiert werden könnte.
Falls ihr meine Reaktion persönlich aufgefasst habt, tut mir das Leid, das war so nicht beabsichtigt.
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| 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.
HTML-Code ist aus.
|
|
|
|
PHP News
|