Variable als global definieren shell-php

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

  • Variable als global definieren shell-php

    Servus zusammen.

    Hab ein kleines(grosses) Problem mit der Variablen übergabe von Shell zu php.
    ich rufe in einem Shell Skript ein php Skript auf. In dem Shell Skript definiere ich globale Variablen. Jedoch werden diese nicht im php Skript übernommen wenn ich dieses über den webserver aufrufe, sondern nur wenn ich das php über das shell skript aufrufe. Das Shell Skript und das php Skript liegen in dem gleichen Ordner.
    Hier mal der auszüge aus dem shell skript quelltext.

    Code:
    [COLOR=red]
    typeset -x ortstart
    ortstart=$(sed -e 's/^\(.\)\(.*\)/\u\1\2/' /tmp/auswahlstart/StadtTouri+.txt)

    wget -O /tmp/php1 "http://192.168.0.25/rmv1.php" #Aufruf php Skript
    .
    .
    .
    [/COLOR]

    und nun auszüge aus dem php quelltext

    Code:
    [COLOR=green]
    #! /usr/bin/php


    <?php

    $ja = array();

    $ja['REQ0JourneyStopsS0G'] = "$ortstart";
    .
    .
    .
    [/COLOR]

    Ist typeset überhaupt richtig, oder ist das überhaupt möglich die variable global zu machen, oder muss ich die im php skript neu deklarieren.

    Danke schon mal für die tipps und

    lieben Gruss eure flyingt

  • #2
    wget bewirkt, dass das PHP-Script vom Webserver abgearbeitet wird (der PHP wahrscheinlich auch ohne Shebang findet), in dessen Environment die Variable ortstart natürlich nicht existiert.

    Entweder statt wget einfach
    > /usr/bin/php /path/to/rmv1.php

    oder
    wget -O /tmp/php1 "http://192.168.0.25/rmv1.php?ortstart=$ortstart"

    Kommentar


    • #3
      Danke für die Antwort.

      Für meinen Fall muss ich das über den Webserver starten., deswegen geht der Weg über /usr/bin/php........ nicht. Starte das shell skript über einen voip router.

      Es funktioniert mit deinem Tip, jedoch steht in meiner Variablen ein + drinne. Ich übergebe die Varaible in ein URL und deswegen brauche ich die + als Trenner. Jedoch wenn das PHP die Variablen an die URL übergibt gibt er die + als [space] aus. Muss ich die + in der Variable irgendwie markieren das er die nicht als + annerkennt.


      gruss flyingt

      Kommentar


      • #4
        (raw)urlencode()
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          hi,

          doof gefragt,
          warum funzt dieses nicht

          [COLOR=crimson]
          ortstart="ort\+strasse\+3"
          wget -O /tmp/php1 "http://192.168.0.25/rmv1.php?ortstart=$ortstart"[/COLOR]

          müßte doch im prinzip ,

          ort+strasse+3

          herausbekommen ???

          gruß flyingt

          Kommentar


          • #6
            weil das "backslashen" in der url keinen sinn macht.
            schau dir wahsagas post noch mal an.

            Kommentar


            • #7
              Funktioniert !!!

              PHP-Code:
              <?php

              $ja 
              = array();

              $ja['REQ0JourneyStopsS0G'] = "$ortstart+$strassestart+$hausnrstart";   
              ....


              $url "http://www.................&wai=yes&".urlencode($getstring);
              jetzt steht zwar anstatt eines "&" ein "%" dürfte hex-code sein und identisch, wenn ich die grundlagen richtig verstanden habe !

              Danke !!!

              Kommentar

              Lädt...
              X