Toon posts:

PHP] Problemen met in_array()

Pagina: 1
Acties:
  • 290 views

Verwijderd

Topicstarter
Beste,

if(in_array($str, $array), een andere en snellere functie dan foreach($array as $node). Ik heb echter wel enkele problemen ermee. Mijn script moet kijken welke mime type een afbeelding is. Dat werkt perfect met de volgende functie:
PHP:
1
2
        $image = getimagesize($FILE_DATA['source']);
        $mime = image_type_to_mime_type($image[2]);


Het geeft mij alleen maar problemen, Hij geeft elke keer dezelfde melding.
"Sorry, it is not a valid image file! (DEBUG: image/jpeg)"

Maar wat raar is 'image/jpeg' staat wel in de array. Zie hier onder het stukje code.

Array:
PHP:
1
2
3
4
5
6
7
8
9
    $FILE_MIMES = Array(
        "image/pjpeg"   =>"jpg",
        "image/jpeg"    =>"jpg",
        "image/jpg"     =>"jpg",
        "image/png"     =>"png",
        "image/x-png"   =>"jpg",
        "image/gif"     =>"gif",
        "image/bmp"     =>"bmp"
    );


En het andere deeltje, wat niet mee werkt.
PHP:
1
2
3
4
5
6
7
        $image = getimagesize($FILE_DATA['source']);
        $mime = image_type_to_mime_type($image[2]);
        if(in_array($mime, $FILE_MIMES)){
            echo "DEBUG: SUCEED!"; #debug func.
        } else {
            $errorstring="Sorry, it is not a valid image file! (DEBUG: ".$mime.")";
        }

Als ik debug, zijn het gewoon dezelfde string's (denk ik?)

Wat ook erg raar is, als ik het volgende doe:

PHP:
1
2
3
4
5
6
7
        $image = getimagesize($FILE_DATA['source']);
        $mime = image_type_to_mime_type($image[2]);
        if($mime == 'image/jpeg')){
            echo "DEBUG: SUCEED!"; #debug func.
        } else {
            $errorstring="Sorry, it is not a valid image file! (DEBUG: ".$mime.")";
        }


Dan heb ik nergens geen problemen mee, en werkt het gewoon.
Heeft iemand enig idee wat er niet helemaal goed gaat?

Gr, kevin

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Staat er 'toevallig' nog een \r (of zelfs \r\n) achter de header?

Steun Elkaar, Kopieer Nederlands Waar!


Verwijderd

Topicstarter
Skinkie schreef op zaterdag 07 augustus 2010 @ 23:32:
Staat er 'toevallig' nog een \r (of zelfs \r\n) achter de header?
Voor zover ik het zie/weet niet.

Ik heb hier een linkje naar de hightlight_file('image.php');
http://dev.kevinvdburgt.n.../image.php?src=kevin.jpeg

Ik zou een kunnen proberen met debug regels erbij doen.

  • RAJH
  • Registratie: Augustus 2001
  • Niet online
Je gebruikt een multidimensionale array, maar in_array kijkt alleen naar de values. Je zou isset($FILE_MIME[$mime]) kunnen gebruiken.

  • OnTracK
  • Registratie: Oktober 2002
  • Laatst online: 14:47
in_array is of de value bestaat, en image/jpeg staat niet aan de value kant van je array. kijk eens naar array_key_exists.

Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.


Verwijderd

Topicstarter
OnTracK schreef op zaterdag 07 augustus 2010 @ 23:44:
in_array is of de value bestaat, en image/jpeg staat niet aan de value kant van je array. kijk eens naar array_key_exists.
Het werkt http://dev.kevinvdburgt.n.../image.php?src=kevin.jpeg

Je bent geweldig! Heel erg bedankt _/-\o_

  • Afvalzak
  • Registratie: Oktober 2008
  • Laatst online: 08-02 17:13

Afvalzak

Zet jij mij even buiten?

Suceed is met dubbel C ;) Succeed dus:)

Last.fm | Code Talks


  • kevinkrs
  • Registratie: Juni 2010
  • Laatst online: 10-02 21:32
Ik heb anders ook wel af en toe gezeur met die mime types.
Bij png bijvoorbeeld image/PNG image/png image/pngx enzovoorts. :|

Verwijderd

Topicstarter
afvalzak schreef op zaterdag 07 augustus 2010 @ 23:49:
[...]


Suceed is met dubbel C ;) Succeed dus:)
Oeps |:( mn engels is niet zooo heel best ;) maar bedankt!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 15:35

Creepy

Tactical Espionage Splatterer

Oftewel: volgende keer gewoon even de documentatie lezen van de functies die je gebruikt, voordat je een topic opent ;). Dis is echt basic handleiding en debug werk dus alsnog zet ik er een slot op. Dit had je prima zelf kunnen oplossen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney

Pagina: 1

Dit topic is gesloten.