strpos met array php
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:
maak:
werkt dit niet.. iemand suggesties?
maar hoe kan ik ervoor zorgen dat ik van $extensie een array maak?
als ik van:
maak:
werkt dit niet.. iemand suggesties?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Gesponsorde koppelingen:
zo gewoon?
of zo:
In jouw code... wat als je bestandsnaam: "ietspnggif.jpg" is?
Gewijzigd op 13/09/2010 17:47:08 door Erik Rijk
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..
maar ik heb het veranderd, maar dit werkt ook niet..
volgens mij heb ik dat ook al eerder geprobeerd..
Parse error: Het werkt niet @ regel 3456;
Heb je een foutmelding??
echo / var_dump eens wat data. waar gaat het mis?
Heb je een foutmelding??
echo / var_dump eens wat data. waar gaat het mis?
Nee geen foutmelding.
Dit komt eruit:
array(2) { [0]=> string(3) "jpg" [1]=> string(3) "png" }
Dit komt eruit:
array(2) { [0]=> string(3) "jpg" [1]=> string(3) "png" }
Quote:
strpos — Find position of first occurrence of a string
Volgens mij werkt dit dus niet met een array().
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.
offtopic, Als je enkele quotes gebruikt hoef je niet te escapen bij het weergeven van html stukjes zoals je afbeelding.
weet je een andere manier om alleen bestanden eruit te pikken met een bepaalde extensie?
Kijk eens naar pathinfo() en glob() om opendir/readdir te vervangen. glob is als het goed is sneller.
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 :/)
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.
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 -
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?
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 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)
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
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>
/*--------------------------------------------------------------------------------------------------------------------------
(§) 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 -
- 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.
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
Job, topic is ruim een jaar geleden gestart.
Hierop reageren is niet meer nodig :)
Probeer erop te letten.
Hierop reageren is niet meer nodig :)
Probeer erop te letten.



