Versio

strpos met array php

Overzicht Reageren

Henk en Annie

Henk en Annie

13/09/2010 17:32:27
Quote Anchor link
het is me eindelijk gelukt om een extensie te vinden in een bestandsnaam en dan een afbeelding te laten weergeven..

maar hoe kan ik ervoor zorgen dat ik van $extensie een array maak?

als ik van:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$extensie
= "jpg";
?>


maak:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$extensie
= array();
$extensie[1] = "jpg";
$extensie[2] = "png";
?>


werkt dit niet.. iemand suggesties?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php

// Open afbeelding map
$map = "content";
$dir = opendir($map);
$file = readdir($dir);

$extensie = "jpg";

// Haal alle afbeeldingen op
while(($file = readdir($dir)) !== false){
    if(strpos($file, $extensie) == true){
        echo "<img src=\"". $map . "/" . $file ."\">";
    }
}


closedir($dir);
?>
 
PHP hulp

PHP hulp

25/05/2012 18:44:28
Gesponsorde koppelingen:
BHosted Hosting al vanaf € 1,- per maand

Controleer nu gratis jouw domeinnaam:

  
 
Erik Rijk
Moderator

Erik Rijk

13/09/2010 17:46:07
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$extensie
= array();
$extensie[] = "jpg";
$extensie[] = "png";
?>


zo gewoon?
of zo:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$aValues
= array("png" => "png", "jpg" => "jpg");
?>


In jouw code... wat als je bestandsnaam: "ietspnggif.jpg" is?
Gewijzigd op 13/09/2010 17:47:08 door Erik Rijk
 
Henk en Annie

Henk en Annie

13/09/2010 17:55:20
Quote Anchor link
eigenlijk moet er dan ook een punt voor jpg en png staan ;)

maar ik heb het veranderd, maar dit werkt ook niet..

volgens mij heb ik dat ook al eerder geprobeerd..
 
Erik Rijk
Moderator

Erik Rijk

13/09/2010 17:59:46
Quote Anchor link
Parse error: Het werkt niet @ regel 3456;

Heb je een foutmelding??
echo / var_dump eens wat data. waar gaat het mis?
 
Henk en Annie

Henk en Annie

13/09/2010 18:09:35
Quote Anchor link
Nee geen foutmelding.

Dit komt eruit:

array(2) { [0]=> string(3) "jpg" [1]=> string(3) "png" }
 
- SanThe -

- SanThe -

13/09/2010 18:37:06
Quote Anchor link
Quote:
strpos — Find position of first occurrence of a string


Volgens mij werkt dit dus niet met een array().
 
- Mark -

- Mark -

13/09/2010 18:58:42
Quote Anchor link
strpos werkt niet met een array nee. Tevens gaat dat wat de ts wil niet echt werken. als de afbeelding 'weetikveelpng.gif' heet laat hij hem gewoon door.

offtopic, Als je enkele quotes gebruikt hoef je niet te escapen bij het weergeven van html stukjes zoals je afbeelding.
 
Henk en Annie

Henk en Annie

13/09/2010 18:58:58
Quote Anchor link
weet je een andere manier om alleen bestanden eruit te pikken met een bepaalde extensie?
 
- Mark -

- Mark -

13/09/2010 19:09:31
Quote Anchor link
Kijk eens naar pathinfo() en glob() om opendir/readdir te vervangen. glob is als het goed is sneller.
 
Niek s

niek s

13/09/2010 19:24:50
Quote Anchor link
Henk en Annie op 13/09/2010 18:58:58:
weet je een andere manier om alleen bestanden eruit te pikken met een bepaalde extensie?


Je weet toch wel dat controleren op extensie geen goede security is?
Iedereen noemt het een extensie, maar het is gewoon een bestandsnaam. Oke er zit ene punt met tekst op het eind, maar het zegt helemaal niets!
Controleer liever op MIME type, al ben ik daar ook al wel hacks voor tegen gekomen (een JPEG MIME, die vervolgens niet als afbeelding te openenen was, en 'cat' gaf de melding dat et vaag was (binary oid), open je het met vi zie je dat het een perl script was :/)
 
- Mark -

- Mark -

13/09/2010 19:34:30
Quote Anchor link
MIMI type is ook alles behalve te vertrouwen hebben ze mij altijd verteld.

Maar dit lijkt me eerder een filter om alleen afbeeldingen weer te geven en niet andere bestanden in een map met bestanden die als veilig zijn bestempeld. En daarvoor is het wel voldoende gok ik. Onveilige bestanden horen niet op een server te staan. Dan ben je al te laat namelijk.
Gewijzigd op 13/09/2010 19:37:16 door - Mark -
 
Henk en Annie

Henk en Annie

14/09/2010 10:17:29
Quote Anchor link
het is gewoon voor eigen gebruik dit script.
ik plaats gewoon zelf de foto's in een map.

maar nu is alsnog mijn vraag

is er een andere manier om alleen bestanden eruit te pikken met een bepaalde extensie?
 
- Mark -

- Mark -

14/09/2010 10:25:25
Quote Anchor link
Mark Coenen op 13/09/2010 19:09:31:
Kijk eens naar pathinfo() en glob() om opendir/readdir te vervangen. glob is als het goed is sneller.


Je hebt geluk, Moest zelf iets hebben in dezelfde richting.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php

    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Settings.
    --------------------------------------------------------------------------------------------------------------------------*/    

    #| De locatie van de te doorzoeken map.

    
        $location = 'content/';


    #| We zoeken alleen afbeeldingen dus alleen de volgende extensies worden toegestaan.
    
        $extensions = array('png', 'jpg');


    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Defaults.
    --------------------------------------------------------------------------------------------------------------------------*/    

    #| Set " $images " array voor het opslaan van de afbeeldingen.

    
        $images = array();
        

    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) Bestanden ophalen en de afbeeldingen eruit filteren.
    --------------------------------------------------------------------------------------------------------------------------*/    

    #| Alle bestanden ophalen

    
        $files = glob($location.'*.*');


    #| Eerst kijken we of er wel wat is gevonden.
    
        if(!empty($files)){

        /*---- INFO: Ja, Er zijn 1 of meerdere bestanden gevonden. ----*/

        #| Alle gevonden bestanden doorlopen.

        
            foreach($files as $file){
                
            #| Informatie over het bestand ophalen.
            
                $info = pathinfo($file);
            
            
            #| We zoeken alleen afbeeldingen dus die filteren we eruit en stoppen we in de " $images " array.
            
                if(in_array($info['extension'], $extensions)){
                    
                /*---- INFO! ---->
                
                    We hebben te maken met een afbeelding.
                    
                    - We voegen de afbeelding toe aan de " $images " array met de link van de afbeelding als de SLEUTEL.
                    - De info die we hebben over het bestand voegen we toe als de WAARDE.
                            
                */

                                
                    $images[$file] = $info;
                }
            }
        }


?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Demo :: Icon viewer.</title>
</head>

<body>
<?php
    
    /*--------------------------------------------------------------------------------------------------------------------------    
    (§) De gevonden afbeeldingen weergeven.
    --------------------------------------------------------------------------------------------------------------------------*/    

    #| Eerst kijken we of er wel afbeeldingen zijn gevonden.

    
        if(!empty($images)){

        /*---- INFO: Ja, er zijn afbeeldingen gevonden. ----*/

        #| Alle afbeeldingen doorlopen.

        
            foreach($images as $img => $info){
            
            #| De afbeelding weergeven.
            
                echo '<img src="'.$img.'">';                
            }
        }

        else{

        /*---- INFO: Helaas, er zijn geen afbeeldingen gevonden. ----*/

            echo 'Geen afbeeldingen gevonden.';    
        }


?>

</body>
</html>
Gewijzigd op 14/09/2010 15:39:56 door - Mark -
 
Job Putters

Job Putters

27/01/2012 14:52:42
Quote Anchor link
- Mark - op 13/09/2010 18:58:42:
strpos werkt niet met een array nee. Tevens gaat dat wat de ts wil niet echt werken. als de afbeelding 'weetikveelpng.gif' heet laat hij hem gewoon door.

offtopic, Als je enkele quotes gebruikt hoef je niet te escapen bij het weergeven van html stukjes zoals je afbeelding.


strpos werkt wel met een array. Maar ik zou niet weten hoe.

Toevoeging op 27/01/2012 14:58:03:
Gewijzigd op 27/01/2012 14:58:42 door Job Putters
 
Erik Rijk
Moderator

Erik Rijk

27/01/2012 14:58:06
Quote Anchor link
Job, topic is ruim een jaar geleden gestart.
Hierop reageren is niet meer nodig :)

Probeer erop te letten.
 



Overzicht Reageren