die geister die ich rief..

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

  • die geister die ich rief..

    Hallo erst mal...
    habe einen Programmteil in eine Funktion ausgelagert,
    im Programm lief das biest.
    Nun in der funktion nicht mehr.
    Alle Daten kommen laut echo in der Funktion an .
    Vesteh nix mehr please help.

    Hier die Funktion:

    PHP-Code:
    function gruppe0($result0){
    //pfad zu convert befehl 
    define("convert""/usr/bin/convert");

    // pfade definieren
     
    $thumbs thumbs;
     
    $pfadt get_tournament_by_id($_POST['tid']);
     
    $pfadp $_POST['pruefnr'];
     
    $pfad $_CONFIG['img_path'] . "$pfadt/$pfadp/";
     
    $pfad0 $_CONFIG['img_path'] ."$pfadt/$pfadp/$thumbs/";
     
    $imgpath "$pfad";

    // pruefen $result0 array ist wenn ja dann werte vereinzeln
    if (is_array($result0)) {
        foreach(
    $result0 as $resulta) {

    // source und destinationfile definieren
            
    $srcfile "$imgpath$resulta";
            
    $dstfile "$pfad0$resulta";

    // ausgabe zur kontrolle 
        
    echo $srcfile ;echo "&nbsp;"; echo $dstfile; echo "<br>";

    //mit escapeshellarg namen linuxfähig machen
        
    $inputescapeshellarg($srcfile);
        
    $outputescapeshellarg($dstfile);

    // definieren $command als linuxbefehl und diesen mit passthrue ausführen
        
    $command "convert ".$input." -resize 17% ".$output."";
        
    passthru($command,$ausgabe);
    }
    }

    Das gibt der echobefehl aus:
    PHP-Code:
    testturnier/00.1/IMG_4694.JPG testturnier/00.1/thumbs/IMG_4694.JPG
    testturnier
    /00.1/IMG_4695.JPG testturnier/00.1/thumbs/IMG_4695.JPG
    testturnier
    /00.1/IMG_4696.JPG testturnier/00.1/thumbs/IMG_4696.JPG
    testturnier
    /00.1/IMG_4430.JPG testturnier/00.1/thumbs/IMG_4430.JPG
    testturnier
    /00.1/IMG_4431.JPG testturnier/00.1/thumbs/IMG_4431.JPG
    testturnier
    /00.1/IMG_4432.JPG testturnier/00.1/thumbs/IMG_4432.JPG
    testturnier
    /00.1/IMG_4433.JPG testturnier/00.1/thumbs/IMG_4433.JPG
    testturnier
    /00.1/IMG_4434.JPG testturnier/00.1/thumbs/IMG_4434.JPG
    testturnier
    /00.1/IMG_4435.JPG testturnier/00.1/thumbs/IMG_4435.JPG
    testturnier
    /00.1/IMG_4436.JPG testturnier/00.1/thumbs/IMG_4436.JPG 
    Also genau das hat er auch im Programmteil ausgegeben und war gut...

    Diese funktion habe ich zweimal mit $result0 und $result1 habe ein array in die beiden "resulte" aufgetelt weil ich mit meinem Dualcore die beiden funktioen zeitgleich aurufen möchte, wenn ich das so schreibe :
    PHP-Code:
    gruppe0($result0);
    gruppe1($result1); 
    übergibt er dann die Daten an die erste Funktion, macht weiter und ruft die zweite Funktion auf und rechnet das dann in 2 prozessen ?

    Danke Ronny

  • #2
    Multithreading mit PHP
    Korrigiert mich wenn ich falsch liege, aber träum weiter

    Kommentar


    • #3
      Original geschrieben von pekka
      Multithreading mit PHP
      Korrigiert mich wenn ich falsch liege, aber träum weiter
      Wichtig ist eigendlich nur das er zwei Prozesse startet den rest macht der rechner allein...

      haste du vielleicht noch ne idee warum die Funktion nicht tut was sie soll ?

      Kommentar


      • #4
        Hmm

        PHP-Code:
        echo $command"| at now"
        wäre ein Versuch wert.
        gruss Chris

        [color=blue]Derjenige, der sagt: "Es geht nicht", soll den nicht stoeren, der's gerade tut."[/color]

        Kommentar


        • #5
          Original geschrieben von ronaldl
          Wichtig ist eigendlich nur das er zwei Prozesse startet den rest macht der rechner allein...
          Er startet aber nur einen Prozess und wartet auf das Ergebnis von diesem, bevor der zweite Aufruf gemacht wird.

          Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

          bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
          Wie man Fragen richtig stellt

          Kommentar


          • #6
            @hhcm
            das erzeugt diese ausgabe, aber fürt nix aus
            PHP-Code:
            convert 'testturnier/00.1/IMG_4694.JPG' -resize 17'testturnier/00.1/thumbs/IMG_4694.JPG'at nowtestturnier/00.1/IMG_4695.JPG testturnier/00.1/thumbs/IMG_4695.JPG
            convert 
            'testturnier/00.1/IMG_4695.JPG' -resize 17'testturnier/00.1/thumbs/IMG_4695.JPG'at nowtestturnier/00.1/IMG_4696.JPG testturnier/00.1/thumbs/IMG_4696.JPG
            convert 
            'testturnier/00.1/IMG_4696.JPG' -resize 17'testturnier/00.1/thumbs/IMG_4696.JPG'at nowtestturnier/00.1/IMG_4430.JPG testturnier/00.1/thumbs/IMG_4430.JPG
            convert 
            'testturnier/00.1/IMG_4430.JPG' -resize 17'testturnier/00.1/thumbs/IMG_4430.JPG'at nowtestturnier/00.1/IMG_4431.JPG testturnier/00.1/thumbs/IMG_4431.JPG
            convert 
            'testturnier/00.1/IMG_4431.JPG' -resize 17'testturnier/00.1/thumbs/IMG_4431.JPG'at nowtestturnier/00.1/IMG_4432.JPG testturnier/00.1/thumbs/IMG_4432.JPG
            convert 
            'testturnier/00.1/IMG_4432.JPG' -resize 17'testturnier/00.1/thumbs/IMG_4432.JPG'at nowtestturnier/00.1/IMG_4433.JPG testturnier/00.1/thumbs/IMG_4433.JPG
            convert 
            'testturnier/00.1/IMG_4433.JPG' -resize 17'testturnier/00.1/thumbs/IMG_4433.JPG'at nowtestturnier/00.1/IMG_4434.JPG testturnier/00.1/thumbs/IMG_4434.JPG
            convert 
            'testturnier/00.1/IMG_4434.JPG' -resize 17'testturnier/00.1/thumbs/IMG_4434.JPG'at nowtestturnier/00.1/IMG_4435.JPG testturnier/00.1/thumbs/IMG_4435.JPG
            convert 
            'testturnier/00.1/IMG_4435.JPG' -resize 17'testturnier/00.1/thumbs/IMG_4435.JPG'at nowtestturnier/00.1/IMG_4436.JPG testturnier/00.1/thumbs/IMG_4436.JPG
            convert 
            'testturnier/00.1/IMG_4436.JPG' -resize 17'testturnier/00.1/thumbs/IMG_4436.JPG'at now 
            sagt dir das warum das so ist ?

            @ghostgambler
            Gibt es eine Möglichkeit die funktionen zeitgleich aufzurufen ?

            Kommentar


            • #7
              Re: die geister die ich rief..

              PHP-Code:
               $pfad $_CONFIG['img_path'] . "$pfadt/$pfadp/";
               
              $pfad0 $_CONFIG['img_path'] ."$pfadt/$pfadp/$thumbs/"
              Das _CONFIG-Array ist natürlich keine superglobale Variable!

              Kommentar


              • #8
                $thumbs ist auch nicht superglobal.

                Wie kommst du auf die Idee, dass PHP zwei nacheinander stehende Befehle zeitgleich auf verschiedenen Prozessoren ausführt?

                Kommentar


                • #9
                  Re: Re: die geister die ich rief..

                  Original geschrieben von PHP-Desaster
                  PHP-Code:
                   $pfad $_CONFIG['img_path'] . "$pfadt/$pfadp/";
                   
                  $pfad0 $_CONFIG['img_path'] ."$pfadt/$pfadp/$thumbs/"
                  Das _CONFIG-Array ist natürlich keine superglobale Variable!
                  ööööhm, die pfade kommen laut echo an ,$_config ist also definiert,
                  auch echo $command zeigt richtige Pfade...

                  Oder habe ich da was falsch verstanden ?
                  mfg Ronny

                  Kommentar


                  • #10
                    Original geschrieben von onemorenerd
                    $thumbs ist auch nicht superglobal.

                    Wie kommst du auf die Idee, dass PHP zwei nacheinander stehende Befehle zeitgleich auf verschiedenen Prozessoren ausführt?
                    Was heist das superglobal ??

                    Das mit den Prozessen ist ne idee nix weiter...
                    wäre interessant, wir haben mal das selbe script auf zwei verschiedenen ordner laufen lassen und da geht er startet zwei mal convert.

                    Kommentar


                    • #11
                      Was heist das superglobal ??
                      Wer lesen kann, ist klar im Vorteil

                      Kommentar


                      • #12
                        Original geschrieben von PHP-Desaster
                        Wer lesen kann, ist klar im Vorteil
                        Die werte kommen in dr funktion korrekt an laut echo diese sind klar definiert, also warum sollen diese superglobal sein ??

                        $_config ist im script welches die function aufruft definiert, $thumbs ist auch klar definiert , ich verstehe nicht was ihr mir damit sagen möchtet.

                        Kommentar


                        • #13
                          PHP-Code:
                          <?php

                          $var 
                          'Ich bin eine globale Variable.';

                          // So machst du es - funktioniert nicht!
                          function test1() {
                              echo 
                          $var;
                          }

                          function 
                          test2() {
                              global 
                          $var;
                              echo 
                          $var;
                          }

                          function 
                          test3($var) {
                              echo 
                          $var;
                          }

                          echo 
                          'Test 1: 'test1(); echo "<br />\n";
                          echo 
                          'Test 2: 'test2(); echo "<br />\n";
                          echo 
                          'Test 3: 'test3($var); echo "<br />\n";

                          ?>
                          Bitte ausführen und so lange php.net/manual lesen bis du es nachvollziehen kannst.

                          Kommentar


                          • #14
                            ich rufe die funktion genau so auf wie test3 , das echo gibt alle inhalte korrekt an. Nur der teil mit

                            PHP-Code:
                            $command "convert ".$input." -resize 17% ".$output."";
                            passthru($command,$ausgabe); 
                            macht nix mehr .
                            Ich seh da keinen Fehler....

                            Kommentar


                            • #15
                              Sorry, ich habe mich verlesen. Dein Problem ist ein anderes:
                              $thumbs = thumbs; wünscht sich ein paar Anführungszeichen.


                              wir haben mal das selbe script auf zwei verschiedenen ordner laufen lassen und da geht er startet zwei mal convert.
                              Jede Instanz des Scripts startet einmal convert. Völlig normal. Funktioniert auch auf jedem Ein-Prozessor-System.

                              Kommentar

                              Lädt...
                              X