String contains php

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Lars Groot

Lars Groot

06/12/2009 18:32:00
Quote Anchor link
Beste,
Ik wou graag weten of het volgende mogelijk is in PHP:
Stel je voor, ik heb twee bestanden "test.png" en "test.jpg".
Nu wil ik het script vertellen welke extensie het heeft.
Er is dus een formulier waarbij je kan kiezen welk bestand je wilt veranderen.
Dan word dat dus ?file=test.png of ?file=test.jpg.
Hoe kan ik met PHP kijken of er .png of .jpg achter staat?
Want, als er dus .png achter staat, dan moet er iets veranderd worden, en bij .jpg in iets anders.

Weet iemand of dit mogelijk is, en met welke functie?
LET OP!, de bestandsnaam kan ook heel anders zijn. De extensie blijft echter hetzelfde.
Er kan dus straks het volgende staan, en er kan ook meer bijkomen (het veranderd telkens!)
"
test.png
test12.png
jo.png
moeder.png
vader.jpg
kind.jpg
"
Hoe kan ik het script dus vertellen of er .jpg of .png achter staat?
 
PHP hulp

PHP hulp

20/05/2024 14:32:15
 
Mr.Ark

Mr.Ark

06/12/2009 18:36:00
Quote Anchor link
strtolower(substr($_POST['iets'], -3))
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
 

06/12/2009 18:37:00
Quote Anchor link
strrchr.
Gebruik de punt om op te zoeken.
Mr.Ark schreef op 06.12.2009 18:36:
strtolower(substr($_POST['iets'], -3))

En als de extensie jpeg is? Dan werkt het niet meer hé...
Gewijzigd op 01/01/1970 01:00:00 door
 
GaMer B

GaMer B

06/12/2009 18:43:00
Quote Anchor link
Kan met een regular expression (om maar even meteen daarmee te oefenen):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php

$file
= $_GET['file']; // om te laten zien waar het vandaan komt

preg_match('/([A-Za-z0-9]+)\.([pngjegif]{3,4})/', $file, $matches);
echo 'Filename: ' . $matches[1];
echo 'Extension: ' . $matches[2];[/code]
 
Noppes

Noppes

06/12/2009 18:46:00
Quote Anchor link
Ga niet lopen sukkelen met str_ of preg_ functies je kan met pathinfo uitstekend de extension achterhalen
 
GaMer B

GaMer B

06/12/2009 18:48:00
Quote Anchor link
Zo, nu zijn zowat alle opties gegeven, behalve.... explode?
 

06/12/2009 18:48:00
Quote Anchor link
GaMer13 schreef op 06.12.2009 18:43:
Kan met een regular expression (om maar even meteen daarmee te oefenen):

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php

$file
= $_GET['file']; // om te laten zien waar het vandaan komt

preg_match('/([A-Za-z0-9]+)\.([pngjegif]{3,4})/', $file, $matches);
echo 'Filename: ' . $matches[1];
echo 'Extension: ' . $matches[2];[/code][/quote]
Jij vind dat pjg een goede extensie is?
En bmp mag niet?
Gewijzigd op 01/01/1970 01:00:00 door
 
GaMer B

GaMer B

06/12/2009 18:52:00
Quote Anchor link
Ach, waarom niet he? :P Je kan ook de opties doorgeven hoor:

/([A-Za-z0-9]+)\.([png|jpeg|jpg|gif|bmp])/

Kan allemaal =] Maar bmp zou ik niet toe laten staan. Is meestal enkele MB groot.
 
Mr.Ark

Mr.Ark

06/12/2009 18:53:00
Quote Anchor link
Karl schreef op 06.12.2009 18:37:
strrchr.
Mr.Ark schreef op 06.12.2009 18:36:
strtolower(substr($_POST['iets'], -3))

En als de extensie jpeg is? Dan werkt het niet meer hé...


Klopt karl je hebt gelijk...
 
Lars Groot

Lars Groot

06/12/2009 19:28:00
Quote Anchor link
@Noppes, ik heb jouw manier gebruikt, en het werkt perfect :)
Hier is het script wat ik er van gemaakt heb:
(voor degene die het ook zoeken!)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
$path
= 'HIER JE HELE PATH!!!!(INCL. SLASH AAN HET EINDE)';
$file = 'BESTANDSNAAM (INCL. EXTENSIE)';
$slash = '/';
$path_parts = pathinfo($path.$file.$slash);

echo $path_parts['extension'];
?>

Ik heb het gebruikt voor een resize script, en het werkt perfect :)
Je kan bij mij enkel .JPG / .PNG / .GIF resizen.

Lars
Gewijzigd op 01/01/1970 01:00:00 door Lars Groot
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.