Portal > Foren > PHP > PHP-Programmierung > PHP lernt Javascript..
Antwort
 
Themen-Optionen Thema durchsuchen
Alt 06.03.2006, 00:19 Nach oben    #1
Benutzer
 
Benutzerbild von Skinwalker
 
Registriert seit: 24.01.2006
Beiträge: 66
Standard PHP lernt Javascript..

Hiho, ich suche bisher vergeblich nach
einer leicht zu handhabenden Möglichkeit Variabeln (oder ihre werte) aus einer JS-Datei in einem PHP-Script zu verwenden.

das heißt ich habe eine JS-Datei in der mehrere Variablen stehen, und die braucht mein php-script auch -.-

RegEx wäre vermutlich eine möglichkeit aber ich sehe da Probleme wenn vorher nicht klar ist wie genau die Variablen in der js-datei heißen..oder?

Hf
Skinwalker
Skinwalker ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 00:24 Nach oben    #2
me pro ok?
 
Benutzerbild von Lars
 
Registriert seit: 07.09.2005
Ort: Pulheim bei Köln
Beiträge: 964
Standard

PHP-Code:
preg_match_all('#var (.*)\s*=\s*(.*);#si'$file$matched); 
Sowas?
Lars ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 00:42 Nach oben    #3
Benutzer
 
Benutzerbild von Skinwalker
 
Registriert seit: 24.01.2006
Beiträge: 66
Standard

hm im prinzip... nur irgendwie mehr so in der art von ini_get() klar könnte man sich sowas auch selbst zusammenbasteln aber warum immer wieder das rad neuerfinden..

müsste man nur wissen ob das Rad schon erfunden wurde, und das ist die Frage ^_^
Skinwalker ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 00:47 Nach oben    #4
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Afaik gibt es so was nicht.

Es gibt so etwas für die andere Richtung, sofern ich das richtig verstanden habe (Link), allerdings brauchst Du das ja nicht .

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 01:03 Nach oben    #5
Benutzer
 
Benutzerbild von Skinwalker
 
Registriert seit: 24.01.2006
Beiträge: 66
Standard

na gut also muss ich mir selbst sowas zusammenbasteln..

-.- wär ja auch zu schön gewesen XD
Skinwalker ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 01:32 Nach oben    #6
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Bei Problemen fragst Du einfach hier nochmal nach .. und wenn Du es auch ohne Hilfe schaffst (was natürlich umso besser ist ) dann wäre es super, wenn Du Deine Lösung, welche ja sicherlich eine Funktion sein wird, hier vorstellen könntest, damit man dann auf diesen Thread hier verweisen kann.

Dann gibt es nämlich für den nächsten, der sich mit diesem Problem rumplagt etwas "Fertiges", was er verwenden kann . *g*

Grüße Ben.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 01:36 Nach oben    #7
Benutzer
 
Benutzerbild von Skinwalker
 
Registriert seit: 24.01.2006
Beiträge: 66
Standard

das hatte ich eh vor..auch wenn es wohl nicht allzuviele geben wird die sowas gebrauchen können.
Skinwalker ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 11:28 Nach oben    #8
Jann Hendrik Bekaan
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.374
Standard

ist es nicht leichter die JS-Datei mit PHP aktuell zu halten/erzeugen/aktualisieren

und die Daten dann mittels PHP zu verwalten?
Oder sind das Daten, die sich während eines Besuches ständig ändern?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 12:47 Nach oben    #9
Benutzer
 
Benutzerbild von Skinwalker
 
Registriert seit: 24.01.2006
Beiträge: 66
Standard

nein das macht keinen Sinn da die Daten dann ja woander gespeichert sein müssten wo php sie auslesen kann (zb eine DB) nur um sie dann so zu formatieren das JS sie auch versteht...

das macht wohl kaum Sinn oder?
ausserdem sind solche Daten in einer JS-Datei viel übersichtlicher zu speichern als in der DB.
Skinwalker ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 12:53 Nach oben    #10
Ben
Benjamin Klaile
 
Benutzerbild von Ben
 
Registriert seit: 02.12.2004
Ort: Remagen
Beiträge: 4.516
Standard

Es kommt faktisch darauf, um was für Daten es sich überhaupt handelt.
Ben ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 06.03.2006, 13:04 Nach oben    #11
Benutzer
 
Benutzerbild von Skinwalker
 
Registriert seit: 24.01.2006
Beiträge: 66
Standard

richtig.
Um Klarheit zu schaffen... Ich habe eine HTML datei die 2 tabellen (11 Spalten und 11 Reihen) direkt übereinander positioniert, die "obere" hat einfach nur in der Mittlersten Zelle (5te Spalte, 5te Reihe) eine Grafik (zb ein Männchen)
während die Hintere eine zusammengesetzte Landschaft bildet (aus Tiles).

Wenn nun der Besucher auf eine Zelle klickt die über,unter,link oder rechts von dem Männchen liegt, soll der Hintergrund sich dementsprechend anpassen.
(bzw das tut er schon brav)

in der fraglichen JS-Datei sind die Hintergrundinformationen gespeichert in der form:
img_bg[Y][X] = HINTERGRUND_BILD;

und halt noch gleich ein paar andere Auskünfte über die Karte wie Name,Höhe,Breite..

Nun könnte man natürlich einfach der JS-Datei eine ID zuweisen und diese allgemeinen Werte in der DB speichern und dadurch über PHP abfragen... aber das hört sich etwas... unpraktisch an, übersichtlicher ist es doch wenn alle Informationen auf einem Haufen zusammen sind und nicht über alle Ecken verteilt sind O_O
Skinwalker ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 07.03.2006, 15:14 Nach oben    #12
Benutzer
 
Benutzerbild von Skinwalker
 
Registriert seit: 24.01.2006
Beiträge: 66
Standard

So... habe mir dann meine Funktion angelegt.
aufgerufen wird sie mit
$js = get_js_vars('jscript.js');
und speichert dann numerische und alphanumerische Variablen in einem assoziativen Array alla
$js['name'] = "Christian";

PHP-Code:
// Liest einfache numerische und alphanumerische Variablen aus einer JS-Script-Datei
function get_js_vars($js_file){
    
$js_array = array();
    
$js_lines file($js_file);

    
$numeric_var "#var (\w+) = (\d+);#";
    
$word "[\w|\s|\\|\/|\.|\d]+";
    
$string_var "#var (\w+) = ((\"($word)\")|('($word)'));#";

    foreach(
$js_lines as $i => $line){
        
$match = array();
        
preg_match($numeric_var,$line,$match);
        if(
$match[0]){
            
/*echo "<br>Numeric:";
            foreach($match as $m => $n){
                echo "<br>$m => $n";
            }*/
            /* etwaige Ausgabe: 
                Numeric:
                0 => var width = 10;
                1 => width
                2 => 10
            */
            
$js_array[$match[1]] = end($match);
        }
        
$match = array();
        
preg_match($string_var,$line,$match);
        if(
$match[0]){
            
/*echo "<br>String found:";
            foreach($match as $m => $n){
                echo "<br>$m => $n";
            }*/
            /* etwaige Ausgabe:
            String found:
                0 => var name = 'Hallo';
                1 => name
                2 => 'Hallo'
                3 =>
                4 =>
                5 => 'Hallo'
                6 => Hallo
            */
            
$js_array[$match[1]] = end($match);
        }
    }
    return 
$js_array;

keine Frage sie ist sicher nicht perfekt und man kann sie sicher noch verbessern aber sie macht was sie soll ^^
Skinwalker ist offline  
Diesen Beitrag zu to del.icio.us hinzufügen!Diesen Beitrag zu Technorati hinzufügen!Diesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche

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 sind an
PingBacks sind an
RefBacks sind aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP 5.2 Kompilierung schlägt fehl Byrel Tools, Server, Betriebssysteme 0 03.11.2006 21:09
[Rezension] PHP 5 Kochbuch Artemis Literatur 2 07.09.2006 19:15
PHP 5.1.5, PHP 4.4.4 und PHP 5.2.0 RC2 veröffentlicht Ben Nachrichten 2 01.09.2006 16:05
Neue PHP "release candidates": PHP 4.4.2 RC 1 und PHP 5.1 RC 6 Ben Nachrichten 1 21.11.2005 20:48
Javascript durch php beschleunigen? Heuni PHP-Programmierung 13 20.04.2005 09:36


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:33 Uhr.


Powered by vBulletin® Version 3.7.4 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45