Unix befehl ausführen

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

  • Unix befehl ausführen

    hi

    ich mache eine applikation um meine wanderwege anzuzeigen in google maps. dazu wandelt das programm rohne NMEA daten in KML daten um.

    soweit geht alles ganz gut, lediglich das "aussortieren" der NMEA daten mach ich noch via terminal, und zwar mit diesem code:

    Code:
    cat NMEA.TXT | awk -F ',' '/GPGGA/ {print $2, $3, $5}' > CROPPED_NMEA.TXT
    dabei werden viele angaben die ich nicht brauch bereits vorher aussortiert, das geht superschnell, und funktioniert.

    ich woltle nun machen, dass man eine datei uploaden kann, die upgeloadete datei dann dem befehl oben übergeben wird, und die resutliertende datei wieder vom php script aufgenommen wird.


    der server läuft jeweils nur lokal auf meinem system (os x), ich hab also vollen zugriff auf den server (safe mode, usw).

    irgendwie geht das nicht, und es scheint mir, als würde gar kein system, exec, shell_exec gehen.

    was mach ich da falsch?

    auch der code

    PHP-Code:
    $output_=_shell_exec('ls');
    echo_"<pre>$output</pre>"
    gibt rein gar nix aus, einfach weisses fenster, keine fehlermeldung, nix.

  • #2
    äh, was sollen die ganzen unterstriche? is das blödsinn, oder lerne ich heute noch was dazu??


    aber zur frage (falls die unterstriche ok sein sollten)....:
    hast du die einstellung des safe_mode gecheckt?
    **********
    arkos
    **********

    Kommentar


    • #3
      Versuchs mal mit exec() und einem zweiten parameter für den Returncode:
      PHP-Code:
      exec("awk -F ',' '/GPGGA/ {print $2, $3, $5}' NMEA.TXT > CROPPED_NMEA.TXT"$ret);
      echo 
      "$ret<br />" 
      @arkos
      Die Unterstriche fügt das Forum bei Mac-Code automatisch dazu, hatten wir schon öfters.
      Gruss
      H2O

      Kommentar


      • #4
        Original geschrieben von H2O
        @arkos
        Die Unterstriche fügt das Forum bei Mac-Code automatisch dazu, hatten wir schon öfters.
        verstehe... tata, wenn auch dammich unwichtig, aber ich hab was gelernt

        danke
        **********
        arkos
        **********

        Kommentar


        • #5
          danke H20, ich werde das am abend mal ausprobieren (bin jetz im büro am windows rechner, und denkemal da gibts den awk befehl nicht).

          wie schaut das aus, wenn ich die dateien angeben, müssen die relativ zum arbeitsverzeichnis der auszuführenden PHP datei sein, oder wäre es besser wenn ich die pfade alle absolut angebe?

          Kommentar


          • #6
            wie schaut das aus, wenn ich die dateien angeben, müssen die relativ zum arbeitsverzeichnis der auszuführenden PHP datei sein, oder wäre es besser wenn ich die pfade alle absolut angebe?
            Wenn du es richtig machst sollte beides funktionieren.
            Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

            Kommentar


            • #7
              Original geschrieben von fabio
              wie schaut das aus, wenn ich die dateien angeben, müssen die relativ zum arbeitsverzeichnis der auszuführenden PHP datei sein, oder wäre es besser wenn ich die pfade alle absolut angebe? [/B]
              Wenn sie im auf dem System definierten Pfad ($PATH) sind, brauchst du nur den Namen.
              Auf dem Windoofrechner kannst du das schon ausprobieren, aber mit einem anderen Befehl, z.B. dir. Aber das nützt dir ja nichts, weil es um die Einstellungen deines Rechners geht.
              Gruss
              H2O

              Kommentar


              • #8
                Original geschrieben von H2O
                Wenn sie im auf dem System definierten Pfad ($PATH) sind, brauchst du nur den Namen.
                Auf dem Windoofrechner kannst du das schon ausprobieren, aber mit einem anderen Befehl, z.B. dir. Aber das nützt dir ja nichts, weil es um die Einstellungen deines Rechners geht.
                danke, eben genau deswegen will ichs auf dem windows jetzt auch nicht weiter testen, wäre nur "aus dem fenster (LOL) geworfene arbeit", wie zutreffend.

                also, vielen dank

                Kommentar


                • #9
                  okey super danke, es hat geklappt.
                  dann hab ich irgenwas gemacht, und jetzt kommt immer "Warning: Cannot modify header information - headers already sent "
                  an und für sich ja ein einfacher fehler, den man schnell umgehen kann.

                  aber ich finde es einfach nicht, auch kommt sonst kein fehler.
                  hab in der PHP.ini datei errorreporting auf E_ALL, displayerror auf On, sogar displaystartuperrors hab ich auf On gestellt, server neugestartet, aber der fehler kommt immer noch.

                  der code sieht so aus:

                  PHP-Code:
                  <?php
                  if(isset($_GET['what'])){

                  header("Pragma: public");
                  header("Expires: 0");
                  header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
                  header("Content-Type: application/force-download");
                  header("Content-Type: application/octet-stream");
                  header("Content-Type: application/download");
                  header("Content-Disposition: attachment; filename=pfad_".date("U").".kmz;");
                  header("Content-Transfer-Encoding: binary");
                  (der ganze code hier http://pastie.caboo.se/148755 )

                  das <?PHP ist auf der ersten zeile des files, es wird auch nicht per include eingebettet.
                  ich find den fehler einfach nicht.

                  Kommentar


                  • #10
                    OffTopic:
                    [blödsinn, kann gelöscht werden]

                    Kommentar


                    • #11
                      ich glaub ich habs rausbekommen.
                      der fehler kam erst, nachdem ich die datei im UTF-8 format geöffnet und wieder gespeichert habe.
                      habe ich ein backup der datei geöffnet und diese wieder als ISO8991 gespeichert, hats geklappt.

                      Kommentar


                      • #12
                        Folgendes ist absoluter Unsinn:
                        PHP-Code:
                        header("Content-Type: application/force-download");
                        header("Content-Type: application/octet-stream");
                        header("Content-Type: application/download"); 
                        Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

                        Kommentar


                        • #13
                          ja hat mich auch komisch gedunkt, aber laut der seite wo ic ds rauskopiert habe, hiess es glaubs, dass wäre für verschiedene browser, deine eine höre auf octetstream, der andere auf force download.
                          weiss auch ncht genau, es funktioniert, das reicht mir

                          Kommentar

                          Lädt...
                          X