Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Array aus php script holen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Array aus php script holen

    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      sveni_lee last edited by

      ich habe ein php-script auf meinem Server, welches ein Array mittels foreach erzeugt.

      nun möchte ich dieses ergebnis aus einen js-script heraus abholen…

      aber wie rufe ich das php script aus js heraus auf und könnte man auch eine variable aus js heraus an das php script übergeben?

      1 Reply Last reply Reply Quote 0
      • AlCalzone
        AlCalzone Developer last edited by

        @sveni_lee:

        ich habe ein php-script auf meinem Server, welches ein Array mittels foreach erzeugt.

        nun möchte ich dieses ergebnis aus einen js-script heraus abholen…

        aber wie rufe ich das php script aus js heraus auf und könnte man auch eine variable aus js heraus an das php script übergeben? `
        Mit dem https://github.com/request/request kannst du Webseiten (was das Script ja auch ist) aufrufen. Dieses ist im Script-Adapter automatisch geladen.

        Variablen von JS an PHP kannst du über den QueryString übergeben, z.b.

        http://adresse:port/irgendwas.php?var1=2&var2=abc
        

        das PHP-Script muss die Ausgabevariablen dann in die Antwort schreiben (reiner Text), und das JS-Script diese verarbeiten. Je nachdem was du skriptseitig machen willst ist der Parser-Adapter hier eventuell der einfachste Weg zur Verarbeitung.

        1 Reply Last reply Reply Quote 0
        • S
          sveni_lee last edited by

          okay…

          ich möchte gern meine Datenbank auslesen...

          und zwar mit folgendem php-script:

          #!/usr/bin/php
          
          

          die Variable "/Datengrab_xbmc/Musik/Alben/ABBA" bspw. würde ich gern als variable übergeben… und das Ergebnis in iobroker weiter verarbeiten...

          Das Ergebnis sieht dann so aus:

          svenilee@Gotham-City:~$ php server.php
          Array
          (
              [1973 - Ring Ring] => dir
              [1974 - Waterloo] => dir
              [1975 - Abba] => dir
              [1976 - Arrival] => dir
              [1977 - Abba The Album] => dir
              [1979 - Voulez Vous] => dir
              [1980 - Gracias Por La Música] => dir
              [1980 - Super Trouper] => dir
              [1981 - The Visitors] => dir
              [1982 - The Singles - The first 10 Years] => dir
              [1986 - Abba Live] => dir
              [1992 - Abba Gold (Greatest Hits)] => dir
              [1993 - More Abba Gold (More Abba Hits)] => dir
              [1994 - Thank You For The Music] => dir
              [1999 - Mamma Mia (The Musical)] => dir
              [1999 - The Complete Single Collection 1] => dir
              [1999 - The Complete Singles Collection (CD1)] => dir
              [2000 - Waterloo Ultimate Collection] => dir
              [2001 - The Definitive Collection 1] => dir
              [2006 - Number Ones] => dir
              [2011 - Abba Collected] => dir
              [extrafanart] => dir
              [artist.nfo] => /Datengrab_xbmc/Musik/Alben/ABBA/artist.nfo
              [banner.jpg] => /Datengrab_xbmc/Musik/Alben/ABBA/banner.jpg
              [clearart.png] => /Datengrab_xbmc/Musik/Alben/ABBA/clearart.png
              [fanart.jpg] => /Datengrab_xbmc/Musik/Alben/ABBA/fanart.jpg
              [folder.jpg] => /Datengrab_xbmc/Musik/Alben/ABBA/folder.jpg
              [logo.png] => /Datengrab_xbmc/Musik/Alben/ABBA/logo.png
          )
          
          
          1 Reply Last reply Reply Quote 0
          • AlCalzone
            AlCalzone Developer last edited by

            Ja das könnte tatsächlich gut mit dem Parser-Adapter und ein klein bisschen RegExp gehen, wenn ich das richtig im Hinterkopf habe.

            1 Reply Last reply Reply Quote 0
            • S
              sveni_lee last edited by

              Kann ich mit dem Parser Adapter denn auch eine Variable übergeben?

              ich möchte ja damit ein wenig durch die Datenbank navigieren…

              1 Reply Last reply Reply Quote 0
              • S
                sveni_lee last edited by

                ich habe das jetzt mal versucht mit regex etwas auszulesen aber irgendwie klappt das nicht.

                ich hab das php-script in den iobroker-Ordner verschoben aber es wird trotzdem nicht geparst…

                https://192.168.1.142:8082/server.php

                1 Reply Last reply Reply Quote 0
                • AlCalzone
                  AlCalzone Developer last edited by

                  Nicht zu viele Details nennen 😉

                  @sveni_lee:

                  aber irgendwie klappt das nicht. `
                  Was klappt wie nicht?

                  Wird das PHP-Skript nicht ausgeführt?

                  Wird das PHP-Skript nicht aufgerufen?

                  Wird kein Querystring übergeben?

                  Wird die Antwort korrekt erzeugt, aber nicht korrekt geparst?

                  Wenn ja, wie sieht die Antwort und dein verwendetes RegExp aus?

                  Fragen über Fragen…

                  1 Reply Last reply Reply Quote 0
                  • S
                    sveni_lee last edited by

                    Ich bekomme ich Adapter eine Fehlermeldung…

                    file Not found: Not exist
                    

                    Allerdings bei Aufruf über http://192.168.1.142/Server.php

                    Bei Aufruf über https://… kommt nur ein Fenster mit Err...

                    Mir erschließt sich auch so richtig wie mir der Adapter helfenkann

                    Was versuche ich hier... ich möchte gern durch meine Datenbank browsen und die Daten aus dem übergebenen Array jeweils in einem Widget darstellen und wenn man auf das Widget drückt quasi durch Übergabe des neuen Pfades die Unterordner anzeigen...

                    Gesendet von iPhone mit Tapatalk Pro

                    1 Reply Last reply Reply Quote 0
                    • S
                      sveni_lee last edited by

                      nach dem ich nun ein wenig mehr mit dem Parser Adapter herumgespielt habe bekomme ich nun folgendes:

                      ![](</s><URL url=)https://i.imgur.com/PnNTYtF.jpg" />

                      1 Reply Last reply Reply Quote 0
                      • S
                        sveni_lee last edited by

                        ich versuche immer noch mein php-script auf meinem Server aufzurufen…

                        das php.Script liegt unter /opt/iobroker/server.php

                        mein test js script:

                        const request = require('request');
                        request('http://192.168.1.142:8082/server.php', (err, res, body) => {
                          if (err) { return console.log(err); }
                          log(body.url);
                          log(body.explanation);
                        });
                        

                        wenn ich das js-script ausführe komm t im log:

                        javascript.0	2018-05-28 12:09:28.167	info	script.js.common.Test: undefined
                        javascript.0	2018-05-28 12:09:28.167	info	script.js.common.Test: undefined
                        javascript.0	2018-05-28 12:09:28.159	info	script.js.common.Test: registered 0 subscriptions and 0 schedules
                        javascript.0	2018-05-28 12:09:28.156	info	Start javascript script.js.common.Test
                        javascript.0	2018-05-28 12:09:28.152	info	Stop script script.js.common.Tes
                        

                        versuche ich es mit https://192.168.1.142:8082/server.php kommt im log:

                        javascript.0	2018-05-28 12:16:09.822	info	script.js.common.Test: Error: socket hang up
                        javascript.0	2018-05-28 12:16:09.815	info	script.js.common.Test: registered 0 subscriptions and 0 schedules
                        javascript.0	2018-05-28 12:16:09.812	info	Start javascript script.js.common.Test
                        javascript.0	2018-05-28 12:16:09.807	info	Stop script script.js.common.Test
                        

                        kann mir mal jemand auf die Sprünge helfen?

                        1 Reply Last reply Reply Quote 0
                        • AlCalzone
                          AlCalzone Developer last edited by

                          Womit führst du das php-Skript denn aus? ioBroker bzw. der Web-Adapter kann das von Hause aus nicht.

                          1 Reply Last reply Reply Quote 0
                          • S
                            sveni_lee last edited by

                            ich habe das in ein js script in iobroker gepackt…

                            ich dachte das das php-script wie eine locale html behandelt wird...

                            1 Reply Last reply Reply Quote 0
                            • AlCalzone
                              AlCalzone Developer last edited by

                              https://de.wikipedia.org/wiki/PHP#Funktionsweise

                              1 Reply Last reply Reply Quote 0
                              • S
                                sveni_lee last edited by

                                okay, verstehe… also eine directes aufrufen ist nicht möglich...

                                ich habe ganz nebenbei noch einen Apache auf dem Server laufen...

                                aber wie bringe ich mein script dazu den interpreter zu benutzen?

                                1 Reply Last reply Reply Quote 0
                                • AlCalzone
                                  AlCalzone Developer last edited by

                                  Du musst das irgendwo im Apache-Verzeichnis ablegen. Eine kurze Google-Suche liefert:

                                  https://stackoverflow.com/questions/238 … u/38567352

                                  1 Reply Last reply Reply Quote 0
                                  • D
                                    dwm last edited by

                                    Hi,

                                    warum machst Du im PHP statt einem "print_r" kein

                                    print (json_encode($result));
                                    

                                    Dann würd das script nämlich JSON liefern, und man müsst sich auf der Javascript Seite mit Regex keinen Wolf parsen …

                                    1 Reply Last reply Reply Quote 0
                                    • S
                                      sveni_lee last edited by

                                      die Umwandlung in json hatte ich schon eingebaut… danke

                                      Aber wenn ich nun die seite im Browser aufrufe wird mir der code angezeigt aber nicht das Ergebenis.

                                      ist das so richtig?

                                      ![](</s><URL url=)https://i.imgur.com/YCrngon.jpg" />

                                      1 Reply Last reply Reply Quote 0
                                      • AlCalzone
                                        AlCalzone Developer last edited by

                                        Dann führt Apache den PHP-Interpreter nicht aus. Wieder eine kurze Google-Suche und ich lande hier:

                                        https://www.strassenprogrammierer.de/ph … p_612.html

                                        Mal ehrlich, das bekommst du doch auch hin, oder?

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          sveni_lee last edited by

                                          natürlich, Du hast föllig recht!

                                          Allerdings quäle ich google permanent zu meinem Vorhaben. Ich habe den code auch nur mit hlfe von google

                                          zusammen geschustert.

                                          Leider hat sich auch bei ubuntu und Appache2 eine Menge geändert, so dass die Einstellungen nicht mehr

                                          so einfach zu verstehen sind… zumindest für mich.

                                          Nichz desto trotz habe ich zum mindest hinbekommen das nicht mehr der code angezeigt wird sondern nun

                                          erscheint Array() im Browser... das bedeutet für mich ich bin einen Schritt weiter und werde jetzt mal google fragen

                                          was ich noch falsch mache...

                                          1 Reply Last reply Reply Quote 0
                                          • S
                                            sveni_lee last edited by

                                            es gab einiges was serverseitig noch umgestellt und eingerichtet werden musste. nun klappt es aber schon mal mit dem Array bzw. der json ausgabe im Browser…

                                            Das bedeutet ich komme jetzt an den Punkt an dem ich die json von der "webseite" abrufen möchte.

                                            Das sollte ja mit dem Request-Modul, welchen ja onboard sein sollte...

                                            ich habe jetzt einiges gegoogelt und probiert aber ich bekomme immer eine Info:

                                            javascript.0	2018-05-30 12:43:30.563	info	script.js.common.Test: undefined
                                            javascript.0	2018-05-30 12:43:30.563	info	script.js.common.Test: undefined
                                            javascript.0	2018-05-30 12:43:30.556	info	script.js.common.Test: registered 0 subscriptions and 0 schedules
                                            
                                            const request = require('request');
                                            request('http://192.168.1.142/server.php', (err, res, body) => {
                                              if (err) { return log(err); }
                                              log(body.url);
                                              log(body.explanation);
                                            });
                                            

                                            das beispiel hatte ich aus der verlinkten Seite übernommen…

                                            die "Website" gibt jett folgendes aus:

                                            {"1973 - Ring Ring":"dir","1974 - Waterloo":"dir","1975 - Abba":"dir","1976 - Arrival":"dir","1977 - Abba The Album":"dir","1979 - Voulez Vous":"dir","1980 - Gracias Por La M\u00fasica":"dir","1980 - Super Trouper":"dir","1981 - The Visitors":"dir","1982 - The Singles - The first 10 Years":"dir","1986 - Abba Live":"dir","1992 - Abba Gold (Greatest Hits)":"dir","1993 - More Abba Gold (More Abba Hits)":"dir","1994 - Thank You For The Music":"dir","1999 - Mamma Mia (The Musical)":"dir","1999 - The Complete Single Collection 1":"dir","1999 - The Complete Singles Collection (CD1)":"dir","2000 - Waterloo Ultimate Collection":"dir","2001 - The Definitive Collection 1":"dir","2006 - Number Ones":"dir","2011 - Abba Collected":"dir","extrafanart":"dir","artist.nfo":"\/Datengrab_xbmc\/Musik\/Alben\/ABBA\/\/artist.nfo","banner.jpg":"\/Datengrab_xbmc\/Musik\/Alben\/ABBA\/\/banner.jpg","clearart.png":"\/Datengrab_xbmc\/Musik\/Alben\/ABBA\/\/clearart.png","fanart.jpg":"\/Datengrab_xbmc\/Musik\/Alben\/ABBA\/\/fanart.jpg","folder.jpg":"\/Datengrab_xbmc\/Musik\/Alben\/ABBA\/\/folder.jpg","logo.png":"\/Datengrab_xbmc\/Musik\/Alben\/ABBA\/\/logo.png"}
                                            

                                            edit… hab jetzt mit viel tryandError hinbekommen...!!!

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            743
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            3
                                            24
                                            2235
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo