warten bis befehl fertig ausgeführt ist

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

  • warten bis befehl fertig ausgeführt ist

    Hallo zusammen. Ich habe ein problem mit php in verbindung mit dem module imagemagick, welches für bildbearbeitung gebraucht wird:


    PHP-Code:
    system("convert -resize x140 " $image ." " $pfad $pfadgallery ."small/small" $row['bild']);
        
    system("convert -resize 500 "  $image ." " $pfad $pfadgallery ."big/big" $row['bild']);

        
    $image $pfad $pfadgallery "small/small" $row['bild']  ;
    $Size getimagesize($image); 
    zuerst wird das bild verkleinert, danach wird die grösse des neu erstellten bildes ausgelesen.

    das problem ist, das das bild noch nicht verkleinert wurde, wenn die grösse ausgelesen wird. d.h ich muss warten, bis die verkleinerung abgeschlossen ist. wie bringe ich das hin?

    phpversion 5.04

    gruss stefan

  • #2
    system() sollte eigentlich warten, was convert ausgibt, damit es diese Ausgabe wiederum dem PHP-Script zurückgeben kann. Wenn das wirklich nicht der Fall ist, muß das daran liegen, dass convert hintendran einen neuen Prozess startet, der das Bild (irgendwann mal) verkleinert, aber sofort nach dem Starten dieses Prozesses terminiert. Das ist bei meinem convert nicht so!

    Daher die Frage: Woran erkennst du, dass die Verkleinerung noch nicht abgeschlossen ist, was enthält die Datei und wo ist der convert-Prozess zu dem Zeitpunkt (top?)?

    Als Workaround könnte 'convert && sleep(2)' helfen.

    Kommentar


    • #3
      hi und danke für die antwort.

      also ich merke, dass der prozess nicht fertig ist, weil ich beim ersten mal ausführen eine warning wegen

      $Size = getimagesize($image);

      bekomme. es heisst, dass die ressource nicht gefunden wurde. d.h für mich, dass das bild noch nicht erstellt wurde.

      beim zweiten aufruf funktionierts dann ganz normal, da die bilder dann existieren. ich poste mal das ganze script:

      PHP-Code:
      $query "SELECT bild, beschreibung FROM tx_flashgallery_gallery_bild where tx_flashgallery_breite = 0 ";
      $res mysql(TYPO3_db,$query);
      while(
      $row mysql_fetch_assoc($res))    {
          
      $image $pfad $pfadgallery $row['bild'];
          
      $befehl =   "convert -resize x200 " $image ." " $pfad $pfadgallery ."small/small" $row['bild'];
          
      //echo $befehl;
          
      system("convert -resize x140 " $image ." " $pfad $pfadgallery ."small/small" $row['bild']);
          
      system("convert -resize 500 "  $image ." " $pfad $pfadgallery ."big/big" $row['bild']);

          
      $image $pfad $pfadgallery "small/small" $row['bild']  ;
          
      $Size getimagesize($image);
          
      $Width $Size[0];
          
      //echo $Width;

          
      $query "update tx_flashgallery_gallery_bild SET tx_flashgallery_breite = " .$Width " WHERE bild ='" $row['bild'] ."' ";
          
      //echo $query;
          
      mysql_query($query);
          
      $query "";



      greets

      Kommentar

      Lädt...
      X