Probblem mit ImageCopy()

  • ok... jetzt funzt es wieder nicht...


    ich wollte jetzt noch die variable Dateiendung berücksichtigen...


    das habe ich wie folgt versucht...


    Doch jetzt lädt er mir immer die php-Datei herunter


  • strstr() gibt einen String zurück (von z.B. ".png" bis zum ende des String) und keinen boolschen Wert^^ Ergo müsstest du überprüfen ob der String leer ist (bedeutet zwar gefunden aber kein Fehlerfall) oder ob er false ist (nicht gefunden).
    Oder was mir spontan einfällt, wäre folgendes:

    PHP
    1. <span class="syntaxdefault"></span><span class="syntaxkeyword">if(</span><span class="syntaxstring">"a"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> strstr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pic</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"a"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">".png"</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    $endung </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'png'</span><span class="syntaxkeyword">;<br />}</span><span class="syntaxdefault"> </span>

    Wir hängen also (ein) Zeichen an das Bild und lassen nach genau diesem Zeichen suchen.. wenn strstr erfolgreich ist, würde genau dieses "a" zurück gegeben (:


    oder du lässt einfach mit einer anderen Funktion wie preg_match o.Ä. danach suchen^^

  • Eine Möglichkeit wäre auch

    PHP
    1. <span class="syntaxdefault"><br />if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">strpos</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pic</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">".png"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> false</span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">   $endung </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">".png"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span>
  • &quot;Sarkkan&quot; schrieb:


    Oder was mir spontan einfällt, wäre folgendes:

    PHP
    1. <span class="syntaxdefault"></span><span class="syntaxkeyword">if(</span><span class="syntaxstring">"a"</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> strstr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$pic</span><span class="syntaxkeyword">.</span><span class="syntaxstring">"a"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxstring">".png"</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    $endung </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">'png'</span><span class="syntaxkeyword">;<br />}</span><span class="syntaxdefault"> </span>

    Wir hängen also (ein) Zeichen an das Bild und lassen nach genau diesem Zeichen suchen.. wenn strstr erfolgreich ist, würde genau dieses "a" zurück gegeben (:


    oder du lässt einfach mit einer anderen Funktion wie preg_match o.Ä. danach suchen^^


    Strstr gibt nicht den Teil nach dem Suchstring zurück, sondern ab dem Suchstring.
    In diesem Falle würde, bei erfolgreicher Suche, also .pnga zurückgegeben werden.


    Da sind reguläre Ausdrücke irgendwie deutlich einfacher.
    Hier nochmal das preg_match-Beispiel von vorher:

    PHP
    1. <span class="syntaxdefault">if </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">preg_match</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"~\.png$~i"</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> <br />    </span><span class="syntaxcomment">//... <br /></span><span class="syntaxkeyword">}</span><span class="syntaxdefault"> </span>


    (Hab jetzt auch extra nochmal nach dem Rückgabewert geschaut, sollte so funktionieren^^)

  • hatte mal etwas ähnliches ... (dateiliste filtern und nur bestimte typen ausgeben)

    PHP
    1. <span class="syntaxdefault"><br /></span><span class="syntaxkeyword"><?</span><span class="syntaxdefault">php<br />function listBilder</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$file</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">  if </span><span class="syntaxkeyword">((</span><span class="syntaxdefault">substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$file</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">-</span><span class="syntaxdefault">4</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">===</span><span class="syntaxdefault"> </span><span class="syntaxstring">'.gif'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">||</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$file</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">-</span><span class="syntaxdefault">4</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">===</span><span class="syntaxstring">'.jpg'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">||</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">substr</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$file</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">-</span><span class="syntaxdefault">4</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">===</span><span class="syntaxdefault"> </span><span class="syntaxstring">'.png'</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">      return $file</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">}<br />}<br /></span><span class="syntaxdefault"> </span>


    Ich denke da ist das prinzip doch ganz gut beschrieben und recht gut umzusetzen da er automatisch nur die letzten 4 stellen prüft ob diese die gewünschte endung (zeichenkombination wie du es halt nennen willst ;) ) haben und dementsprechend zurück gibt oder nicht.
    LG
    R4Zz0R