Überprüfung ob jpeg/jpg...dann erst Thumb erstellen?!

Dieses Thema im Forum "Webentwicklung" wurde erstellt von SeriousK, 6. August 2009 .

  1. 6. August 2009
    Hallo habe ein kleines anliegen...

    könnte mir vieleicht jemand erklären (so das ich es 100% kapiere) wie ich es schaffe in folgendem code es so einzurichten das er nur bei jpg/jpeg/JPG/JPEG Thumbs erstellt und auch nur dann ausgibt?

    PHP:
    <?
    $thumbsize = 120 ;
    $imgfile  "files/ $newname " ;
    list(
    $width $height ) =  getimagesize ( $imgfile );
    $imgratio = $width / $height ;
    if (
    $imgratio > 1 ){
    $newwidth  $thumbsize ;
    $newheight  $thumbsize / $imgratio ;}
    else{
    $newheight  $thumbsize ;
    $newwidth  $thumbsize * $imgratio ;}
    $thumb  ImageCreateTrueColor ( $newwidth , $newheight );
    $source  imagecreatefromjpeg ( $imgfile );
    imagecopyresized ( $thumb $source 0 0 0 0 $newwidth $newheight $width $height );
    imagejpeg ( $thumb , "thumb_files/thumb_ $newname " , 100 );
    }

    for (
    $i = 0 ; $i < 1 ; $i ++){
    echo 
    "<img src='http://www.xxx.net/test/thumb_files/thumb_ $newname ' ></a><br><br><br>" ;
    echo 
    "<b>Thumbnail Forums 1</b><br>" ;
    echo 
    '<input type="text" size="70" value="[url=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  ']{bild-down: http://www.xxx.net/test/thumb_files/thumb_'  htmlspecialchars ( $newname ) .  '}
    [/url]" name="foo" /><br>'
    ;

    echo 
    "<b>IMG Tag</b><br>" ;
    echo 
    '<input type="text" size="70" value="{bild-down: [url]http://www.xxx.net/test/files/[/url]'  htmlspecialchars ( $newname ) .  '}
    " name="foo" /><br>'
    ;

    echo 
    "<b>Direct link to image</b><br>" ;
    echo 
    '<input type="text" size="70" value="http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '" name="foo" /><br>' ;

    echo 
    "<b>Hotlink Forum 1</b><br>" ;
    echo 
    '<input type="text" size="70" value="[url=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  ']{bild-down: [url]http://www.xxx.net/test/files/[/url]'  htmlspecialchars ( $newname ) .  '}
    [/url]" name="foo" /><br>'
    ;

    echo 
    "<b>Hotlink Forum 2</b><br>" ;
    echo 
    '<input type="text" size="70" value="[url=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '][img=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '][/url]" name="foo" /><br>' ;

    echo 
    '' //dieses echo stehen lassen da kommt was rein!
    }
    }

    else
    {
    echo 
    "wait a moment while uploading!" ;
    }
    ?>
    habe mir überlegt es so zu machen:

    PHP:
    list( $width $height $flag ) =  getimagesize ( $imgfile ); 
    if(
    $flag  ==  2 ) { 
    // ja ist ein JPEG 
    } else { 
    // ist kein JPEG 
    }  
    aber es kommt nur ein sytax fehler den ich nicht verstehe da ich es nicht mit der ausgabe so hinbekomme denke ich...bin noch ganz frisch in php

    hocke seit wochen an dem script und komme gerade überhaubt nicht weiter...BW ist klar und nen fetts THX
     
  2. 7. August 2009
    AW: Überprüfung ob jpeg/jpg...dann erst Thumb erstellen?!

    Also als aller erstes, die getimagesize Methode ist relativ unsicher. Da nicht der Header des Bildes gecheckt wird. Aber davon mal abgesehen.

    Wie sieht dein Syntax Fehler aus? Ohne den kann man nicht so wirklich helfen.


    Also hierbei:
    PHP:
    list( $width $height $flag ) =  getimagesize ( $imgfile ); 
    if(
    $flag  ==  2 ) { 
    // ja ist ein JPEG 
    } else { 
    // ist kein JPEG 
    }  
    ist alles soweit richtig und gibt keinen Syntaxerror aus.
     
  3. 7. August 2009
    AW: Überprüfung ob jpeg/jpg...dann erst Thumb erstellen?!

    soo habe mal es so eingebaut wie ich php verstanden habe...bitte nicht lachen ist bestimmt eh total falsch

    PHP:
    <? php
    $thumbsize
    = 120 ;
    $imgfile  "files/ $newname " ;
    list(
    $width $height $flag ) =  getimagesize ( $imgfile );
    if(
    $flag  ==  2 ) {
    $imgratio = $width / $height ;
    if (
    $imgratio > 1 ){
    $newwidth  $thumbsize ;
    $newheight  $thumbsize / $imgratio ;}
    else{
    $newheight  $thumbsize ;
    $newwidth  $thumbsize * $imgratio ;}
    $thumb  ImageCreateTrueColor ( $newwidth , $newheight );
    $source  imagecreatefromjpeg ( $imgfile );
    imagecopyresized ( $thumb $source 0 0 0 0 $newwidth $newheight $width $height );
    imagejpeg ( $thumb , "thumb_files/thumb_ $newname " , 100 );
    }

    for (
    $i = 0 ; $i < 1 ; $i ++){
    echo 
    "<img src='http://www.xxx.net/test/thumb_files/thumb_ $newname ' ></a><br><br><br>" ;
    echo 
    "<b>Thumbnail Forums 1</b><br>" ;
    echo 
    '<input type="text" size="70" value="[URL=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  ']{bild-down: http://www.xxx.net/test/thumb_files/thumb_'  htmlspecialchars ( $newname ) .  '}
    [/URL]" name="foo" /><br>'
    ;

    echo 
    "<b>IMG Tag</b><br>" ;
    echo 
    '<input type="text" size="70" value="{bild-down: [url]http://www.xxx.net/test/files/[/url]'  htmlspecialchars ( $newname ) .  '}
    " name="foo" /><br>'
    ;

    echo 
    "<b>Direct link to image</b><br>" ;
    echo 
    '<input type="text" size="70" value="http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '" name="foo" /><br>' ;

    echo 
    "<b>Hotlink Forum 1</b><br>" ;
    echo 
    '<input type="text" size="70" value="[URL=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  ']{bild-down: [url]http://www.xxx.net/test/files/[/url]'  htmlspecialchars ( $newname ) .  '}
    [/URL]" name="foo" /><br>'
    ;

    echo 
    "<b>Hotlink Forum 2</b><br>" ;
    echo 
    '<input type="text" size="70" value="[url=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '][img=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '][/url]" name="foo" /><br>' ;

    echo 
    '' //dieses echo stehen lassen da kommt was rein!

    }else{

    for (
    $i = 0 ; $i < 1 ; $i ++){

    echo 
    "<b>IMG Tag</b><br>" ;
    echo 
    '<input type="text" size="70" value="{bild-down: [url]http://www.xxx.net/test/files/[/url]'  htmlspecialchars ( $newname ) .  '}
    " name="foo" /><br>'
    ;

    echo 
    "<b>Direct link to image</b><br>" ;
    echo 
    '<input type="text" size="70" value="http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '" name="foo" /><br>' ;

    echo 
    "<b>Hotlink Forum 1</b><br>" ;
    echo 
    '<input type="text" size="70" value="[URL=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  ']{bild-down: [url]http://www.xxx.net/test/files/[/url]'  htmlspecialchars ( $newname ) .  '}
    [/URL]" name="foo" /><br>'
    ;

    echo 
    "<b>Hotlink Forum 2</b><br>" ;
    echo 
    '<input type="text" size="70" value="[url=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '][img=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '][/url]" name="foo" /><br>' ;

    echo 
    '' //dieses echo stehen lassen da kommt was rein!
    }

    ?>
    da kommt aber nur:

    Parse error: syntax error, unexpected T_ELSE in /www/htdocs/v154/test/index.php on line 129 (line 129 = }else{ )

    edit: also bei selfhtml habe ich gelesen das getimagesize() den header schon ausliest
     
  4. 7. August 2009
    AW: Überprüfung ob jpeg/jpg...dann erst Thumb erstellen?!

    hi,

    hab mir mal die mühe gemacht um dein code durch zu formatieren.
    läßt sich so besser lesen und fehler erkennen.
    also, du beginnst mit einer schleife (zeile 20)
    schließt diese in zeile 39 und hängst ein else anweisung dran.
    in else wieder eine schleife ohne schließen ( } ).
    das problem: wo ist die if anweisung ?

    PHP:
    <? php
    $thumbsize
    = 120 ;
    $imgfile  "files/ $newname " ;
    list(
    $width $height $flag ) =  getimagesize ( $imgfile );
    if(
    $flag  ==  2 ) {
        
    $imgratio = $width / $height ;
        if (
    $imgratio > 1 ){
            
    $newwidth  $thumbsize ;
            
    $newheight  $thumbsize / $imgratio ;
        }else{
            
    $newheight  $thumbsize ;
            
    $newwidth  $thumbsize * $imgratio ;
        }
        
    $thumb  ImageCreateTrueColor ( $newwidth , $newheight );
        
    $source  imagecreatefromjpeg ( $imgfile );
        
    imagecopyresized ( $thumb $source 0 0 0 0 $newwidth $newheight $width $height );
        
    imagejpeg ( $thumb , "thumb_files/thumb_ $newname " , 100 );
    }

    for (
    $i = 0 ; $i < 1 ; $i ++){
        echo 
    "<img src='http://www.xxx.net/test/thumb_files/thumb_ $newname ' ></a><br><br><br>" ;
        echo 
    "<b>Thumbnail Forums 1</b><br>" ;
        echo 
    '<input type="text" size="70" value="[url=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  ']{bild-down: http://www.xxx.net/test/thumb_files/thumb_'  htmlspecialchars ( $newname ) .  '}
    [/url]" name="foo" /><br>'
    ;

        echo 
    "<b>IMG Tag</b><br>" ;
        echo 
    '<input type="text" size="70" value="{bild-down: [url]http://www.xxx.net/test/files/[/url]'  htmlspecialchars ( $newname ) .  '}
    " name="foo" /><br>'
    ;

        echo 
    "<b>Direct link to image</b><br>" ;
        echo 
    '<input type="text" size="70" value="http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '" name="foo" /><br>' ;

        echo 
    "<b>Hotlink Forum 1</b><br>" ;
        echo 
    '<input type="text" size="70" value="[url=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  ']{bild-down: [url]http://www.xxx.net/test/files/[/url]'  htmlspecialchars ( $newname ) .  '}
    [/url]" name="foo" /><br>'
    ;

        echo 
    "<b>Hotlink Forum 2</b><br>" ;
        echo 
    '<input type="text" size="70" value="[url=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '][img=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '][/url]" name="foo" /><br>' ;

        echo 
    '' //dieses echo stehen lassen da kommt was rein!

    }else{

        for (
    $i = 0 ; $i < 1 ; $i ++){

            echo 
    "<b>IMG Tag</b><br>" ;
            echo 
    '<input type="text" size="70" value="{bild-down: [url]http://www.xxx.net/test/files/[/url]'  htmlspecialchars ( $newname ) .  '}
    " name="foo" /><br>'
    ;

            echo 
    "<b>Direct link to image</b><br>" ;
            echo 
    '<input type="text" size="70" value="http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '" name="foo" /><br>' ;

            echo 
    "<b>Hotlink Forum 1</b><br>" ;
            echo 
    '<input type="text" size="70" value="[url=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  ']{bild-down: [url]http://www.xxx.net/test/files/[/url]'  htmlspecialchars ( $newname ) .  '}
    [/url]" name="foo" /><br>'
    ;

            echo 
    "<b>Hotlink Forum 2</b><br>" ;
            echo 
    '<input type="text" size="70" value="[url=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '][img=http://www.xxx.net/test/files/'  htmlspecialchars ( $newname ) .  '][/url]" name="foo" /><br>' ;

            echo 
    '' //dieses echo stehen lassen da kommt was rein!
    }

    ?> 

    so könnte ein if else anweisung aussehen.
    PHP:
    $i  0 ;
    $n  1 ;
    if (
    $i  >=  $n ){
        echo 
    'i ist größer gleich als n' ;
    }else {
        echo 
    'i ist kleiner als n' ;
    }
    was genau hast du vor?

    // edit
    header vom bild lesen
    PHP:
    $imgfile  "cmyb.jpg" ;
    $get_mime_type  getimagesize ( $imgfile );
    echo 
    $get_mime_type [ 'mime' ];  // ausgabe: image/tiff
    // edit2
    hier mal nur bild skalieren

    PHP:
    $thumbsize = 120 ;
    $imgfile  "anfahrt.jpg" ;
    $imginfo  getimagesize ( $imgfile );
    $width  $imginfo [ 0 ];
    $height  $imginfo [ 1 ];
    $format  $imginfo [ 'mime' ];

    if(
    $format  ==  'image/jpeg' ) {
        
    $imgratio = $width / $height ;
        if (
    $imgratio > 1 ){
            
    $newwidth  $thumbsize ;
            
    $newheight  $thumbsize / $imgratio ;
        }else{
            
    $newheight  $thumbsize ;
            
    $newwidth  $thumbsize * $imgratio ;
        }
        
    $thumb  ImageCreateTrueColor ( $newwidth , $newheight );
        
    $source  imagecreatefromjpeg ( $imgfile );
        
    imagecopyresized ( $thumb $source 0 0 0 0 $newwidth $newheight $width $height );
        
    imagejpeg ( $thumb , 'thumb_' . $imgfile , 100 );
    }
     
  5. 7. August 2009
    AW: Überprüfung ob jpeg/jpg...dann erst Thumb erstellen?!

    Ich versteh von dem ganzen Quelltext schonmal gar nicht was das hier soll:

    PHP:
      for ( $i = 0 ; $i < 1 ; $i ++){

    i=0, erhöhe i aber nur solange bis es nicht größer als 0 ist. Ergebnis=0
    Wofür braucht man wenn eine Sache nur einmal ausgegeben werden soll eine Schleife?
     
  6. 8. August 2009
    AW: Überprüfung ob jpeg/jpg...dann erst Thumb erstellen?!

    eigentlich nur ein bilderhostigscript...ehrlich...ich schnall gerade garnicht warum das nicht geht? ?(
     
  7. 8. August 2009
    AW: Überprüfung ob jpeg/jpg...dann erst Thumb erstellen?!

    Benutz mal Notepad++...geh bei


    for ($i=0;$i<1;$i++){

    auf die geschweifte Klammer und schau wo sie endet..Genau bei

    }else{

    for ($i=0;$i<1;$i++){



    Forschleife und else? Niemals im Leben. Wo ist deine If Abfrage?
    Dazu kommt noch, dass else gar nicht mit der geschweiften Klammer geschlossen wird.


    Und das beste..Mal rein theoretisch gedacht, wenn das mit for und else funktionieren würde..
    Schau mal

    PHP:
    for ( $i = 0 ; $i < 1 ; $i ++){
    }else{
    for (
    $i = 0 ; $i < 1 ; $i ++){
      }
    }
    Mal ehrlich wo ist da der Sinn? Das sind genau die gleichen For-Schleifen..

    Das ist wie wenn du schreibst:
    PHP:
    if( $a == $b ){
    echo 
    "ab" ;
    }else if(
    $a == b ){
    echo 
    "ab" ;
    }
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.