c function/datei in php nutzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • #16
    habs mit der php5.ini verrafft. xampp kopiert die dateien nur beim umschalter hinundher. wird natürlich wie gewohnt die php.ini verwendet. Also kannst du die erste antwort mal überspringen und dich den zwei fehlermeldungen widmen. Davor brauch ist das andere wahrscheinlich gar nicht zu versuchen

    Kommentar


    • #17
      allles klar. versuch jetzt das mit exec

      Kommentar


      • #18
        stop mal kurz. Was bringt mir exec. Da führ ich ja nur was aus. das bringt mir ja auch nichts. Da hab ich vor 2 Tagen dem Entwickler schon gefragt ob das geht. Der meinte darauf hin nur. (hier die mail von Ihm)


        > Gibt es bereits eine Implementierung für php in der linux-version
        > (NICHT
        > Onlineprüfung) oder muss ich die linux-shell ansprechen um die Rückgabe
        > werte zu erhalten. Hier kam leider auch nicht ganz raus ob ich direkt
        > über die shell eine Anfrage mit rückgabe wert starten kann. Eine
        > Programmierung in C könnte ich mir hierdurch nämlich ersparen.

        Hallo Herr xxx, ein PHP-Skript habe ich momentan leider nur für die Online-Prüfung auf meiner Website (haben Sie sicher auch schon gefunden). Für die Offline-Prüfung müßten Sie aus PHP halt irgend- wie "Shared Libraries" aufrufen können (oder notfalls ein C-Haupt- programm, das meine Libraries mit einbindet). Da ich nicht der große PHP-Freak bin (was ein Euphemismus ist für "ich habe keine Ahnung von PHP"), kann ich Ihnen da nichts fertiges schicken. Meine Ver- mutung ist, daß Sie in PHP einfach z.B. meine Funktion

        int KtoPruefTestBlzKto ( string blz, string kto )

        definieren und aufrufen müssen (evtl. mit ein bißchen Typecast zwischen "string" und "char*"; und natürlich muß LD_LIBRARY_PATH auf das Verzeichnis mit meinen .so-Dateien zeigen, damit sie vom System gefunden werden).

        Allerdings habe ich gerade http://www.p2p.wrox.com/archive/php_howto/2002-06/3.asp
        gefunden, wo steht, daß es wohl doch "not that easy" ist - dort wird ein C-Wrapper vorgeschlagen, der für KTOPRUEF allerdings auch extrem einfach ist:

        #include <stdio.h>
        #include "KtoPruef.h"
        int main(int argc, char *argv[])
        { printf("%d\n", KtoPruefTestBlzKto(argv[1], argv[2]));
        return 0; }

        Sowas können Sie von PHP aus wohl mit "exec()" aufrufen und erhalten damit den KTOPRUEF-Fehlercode auf die Standardausgabe und können dann dort damit weiterarbeiten. Oder Sie ersetzen den Programm-Body durch

        { return KtoPruefTestBlzKto(argv[1], argv[2]); }

        dann wird keine Ausgabe gemacht, sondern das Ergebnis im Exit Code zurückgegeben - falls Sie den in PHP einfacher auswerten können.

        Letzteres Programm können Sie auf http://www.ktopruef.de (Seite "Download", Abschnitt "Linux-Software") auch fertig runterladen.

        Ich hoffe, das alles hilft Ihnen irgendwie weiter...

        Gruß xxx.

        Kommentar


        • #19
          stop mal kurz. Was bringt mir exec. Da führ ich ja nur was aus. das bringt mir ja auch nichts.
          doch - die ausgabe der anwendung. und der entwickler sagt dasgleiche.

          Für die Offline-Prüfung müßten Sie aus PHP halt irgend- wie ...
          halt eben irgendwie, gelle?

          Kommentar


          • #20
            bin wieder einen schritt weiter. hab mir auf der seite noch mal das mit den files durch gelesen. "DAS SELBE VERZEICHNIS" - gefunden. Also hab ich die ganze scheise parralel zum php/ext verzeichniss noch in apache/bin verzeichniss geknallt. und siehe da. Alte fehlermeldungen weg und eine neue da.

            Kommen wir damit weiter ?

            Fehlermeldung:

            PHP Startup: Invalid libary (maybe not a PHP libary) 'KtoLib20.dll'

            wär es den versuch wert das nochmal auf linux zu testen (mit der .so file) oder heißt das generell das php mit dem nicht klarkommt ?

            Kommentar


            • #21
              habs auch nochmal mit exec probiert. da bekomm ich aber wie erwartet keinen r[ckgabewert

              Kommentar


              • #22
                exec muss eine ausführbare datei ausführen. .exe unter win, z.b.
                ihre ausgabe kann dann verarbeitet werden.

                Kommentar


                • #23
                  und sowas habe ich ja nicht zur verfügung.

                  Ich glaub ich schreib die scheiße am montag als projekt aus bzw. beauftrag ne firma damit. Ich hab keinen Bock mehr. Ich glaub da komm ich zumindest heut und mit meinem jezigen wissenstand in linux und c nicht mehr weiter.

                  Falls du eine Vernünftige linuxlösung parat hättest oder das c so modifizeren könntest bzw. jemanden kennst der das hinkriegt das ich in php einfach nen wert zurück krieg über ne funktionen wären ein paar euro drinnen.

                  ein entnervter, deprimierter chris

                  Kommentar


                  • #24
                    lässt sich denn die linux-version nicht zu einer ausführbaren datei kompilieren?

                    ich sehe gerade, die windows version ist umständlicher.

                    Kommentar


                    • #25
                      normalerweise schon. nur leider fehlen mir hierfür die kentnisse. die datei müsste nur ausführbar mit zwei parameter sein (bzw. 3) und als rückgabe wert ok oder den fehlercode bringen.

                      z.B.
                      Aufruf
                      pruefes [kontonummer] [blz] [bankname(optional)]
                      als rückgabewert dan
                      ein int (wie doku von Ihm http://www.hanft.de/ktopruef/error.htm)

                      dan wäre auch die sache für mich mit exec erledigt.

                      Wenn ich mich nämlich in c einlese verbringe ich damit bestimmt mindestens ne Woche welche Zeit ich zur Zeit leider nicht habe. Da mein Chef das aber am liebsten gestern will muss ich mir leider eingestehen das ich das in der Zeit nicht schaffe ohne meine anderen aufgaben zu vernachläsigen.

                      Kommentar


                      • #26
                        musst dich ja nicht in c einlesen, sondern nur in sachen kompilierung (z.b. mit gcc).

                        Kommentar


                        • #27
                          das versuch ich gerade auszuchecken.

                          kannst du mir den befehlssatz vielleicht sagen ?

                          z.B. gcc -parameter [quelldatei] [zieldatei]

                          Kommentar


                          • #28
                            im grunde, ja:
                            Code:
                            gcc quellcode.c -o zieldatei
                            evtl. noch ausführbar chmod'den.

                            mehr dazu - in jeder suchmaschine deines vertrauens.

                            Kommentar


                            • #29
                              thanks,

                              habs schon in der suchmaschine meines vertrauen gefunden. Trotzdem funkt die scheiße net. Da gibts schon wieder fehlermeldungen. Hängt aber mit dem quelltext und den intern verwiesenen Dateien zu.

                              ./KtoTool: error while loading shared libraries: libKtoArbeit.so: cannot open shared object file: No such file or directory

                              hab schon ne mail an den netten Herrn geschickt ders programmiert hat. Die libKtoArbeit.so scheint eine bibliothekdatei von dem eigentlichen skript KtoTool zu sein.

                              Danke troztdem nochmal für deine Zeilreichen Posts

                              Kommentar


                              • #30
                                hy nochmal.

                                jetzt bin ich dabei das c umzuprogrammieren. Hab mich jetzt doch entschlossen es durchzuziehen. Klappt auch ganz gut da c (zumindest bei dem Programm) doch deutlich einfach ist als ich dachte.

                                jetzt hab ich aber folgendes Problem
                                wenn ich die Datei komplimiere kommen folgende meldungen (selbst OHNE die änderungen die ich gemacht habe)

                                /tmp/cc25y5zG.o(.text+0x1a) : In funtion 'main';
                                : undefined reference to 'KtoUpdateGetCurrentFileName'

                                das letzte scheint sich da sichs dauernd ändert auf den function name zu beziehen.

                                weist du woran das liegt und was ich da machen kann.

                                chmods passen.

                                Kommentar

                                Lädt...
                                X