login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[php] Problemen herkennen extensie

Offline hendrik007 - 07/08/2006 17:49 (laatste wijziging 07/08/2006 17:52)
Avatar van hendrik007Nieuw lid ik heb dit
  1. <?php
  2. $ext = strrchr($file, ".");
  3. if($ext = '.gif' OR $ext = '.jpg' OR $ext = '.bmp' OR $ext = '.JPG' OR $ext = '.png'){$ico = 'pic.gif';}
  4. if($ext = '.doc'){$ico = 'word.gif';}
  5. if($ext = '.xls'){$ico = 'excel.gif';}
  6. if($ext = 'exe' OR $ext = '.bat'){$ico = 'exe.gif';}
  7. else {$ico = 'onbekend.gif';}

het is de bedoeling om per extentie een ander plaatje te weergeven

maar hij weergeeft alleen maar het exe.gif plaatje

9 antwoorden

Gesponsorde links
Offline Dark_Paul - 07/08/2006 17:52
Avatar van Dark_Paul PHP ver gevorderde wat wil je doen? als je bestandsextensie zoekt kan je beste exploden op de '.'. dus:
  1. $ext = explode('.',$file);
Offline Gerard - 07/08/2006 17:53 (laatste wijziging 07/08/2006 17:59)
Avatar van Gerard Ouwe rakker Ben ik het niet met je eens Dark_Paul. Ik maak zelf gebruik van mijn eigen geschreven functie hiervoor.

Oplossing
  1. <?php
  2.  
  3. /**
  4.   * Extracts the extension of the filename provided
  5.   *
  6.   * @author Gerard Klomp <gerard@theprodukt.com>
  7.   * @version 1.0
  8.   * @param string $sFileName The full name of the file
  9.   * @return string The extension
  10.   */
  11. function getExtension($sFileName) {
  12. return substr($sFileName, strrpos($sFileName, '.')+1, strlen($sFileName)-1);
  13. }
  14.  
  15. switch(strtolower(getExtension($file))) {
  16. case 'gif':
  17. case 'jpg':
  18. case 'bmp':
  19. case 'png':
  20. $ico = 'pic.gif';
  21. break;
  22.  
  23. case 'doc':
  24. $ico = 'word.gif';
  25. break;
  26.  
  27. case 'xls':
  28. $ico = 'excel.gif';
  29. break;
  30.  
  31. case 'exe':
  32. case 'bat':
  33. $ico = 'exe.gif';
  34. break;
  35.  
  36. default:
  37. $ico = 'onbekend.gif';
  38. }
Offline svm - 07/08/2006 17:53 (laatste wijziging 07/08/2006 17:55)
Avatar van svm PHP ver gevorderde Dan zul je wel $ext[1] moeten nemen in de if's als je het op Dark_Paul's manier doet.

Edit:
  1. <?php
  2. $ext = strstr($file, ".");
  3. if($ext = '.gif' OR $ext = '.jpg' OR $ext = '.bmp' OR $ext = '.JPG' OR $ext = '.png'){$ico = 'pic.gif';}
  4. if($ext = '.doc'){$ico = 'word.gif';}
  5. if($ext = '.xls'){$ico = 'excel.gif';}
  6. if($ext = 'exe' OR $ext = '.bat'){$ico = 'exe.gif';}
  7. else {$ico = 'onbekend.gif';}

Probeer zo eens.
Offline Sitefoon - 07/08/2006 17:54
Avatar van Sitefoon Nieuw lid '.xls'

dat heb je staan, overal die punt ervoor:

'exe' dit heb je ook staan probeer dit:

'.exe'
Offline CDNC - 07/08/2006 17:58
Avatar van CDNC PHP ver gevorderde hij explode op het ' . ' dus dat zit niet meer bij de extensie... dus dat puntje moet overal weg...
Offline hendrik007 - 07/08/2006 18:00
Avatar van hendrik007 Nieuw lid doet het nog niet
Offline Gerard - 07/08/2006 18:01
Avatar van Gerard Ouwe rakker Zie mijn reply en anders zou ik graag wat meer eigen input willen zien vanuit jouzelf wat je al geprobeerd hebt en wat jouw eigen debugging naar voren brengt.
Offline Richard - 07/08/2006 18:24
Avatar van Richard Crew algemeen @Proximus: die laatste parameter bij substr is onnodig, omdat al tot het einde van de string wordt gezocht. Hiernaast vind ik strrchr hiervoor handiger, omdat deze direct de string teruggeeft.

@Rest: is het moeilijk om te snappen dat je nu steeds toewijst, en dat dat altijd lukt? = is iets anders dan ==, waarmee je vergelijkt.

Deze code zou ik gebruiken:

  1. <?php
  2. switch (strtolower (substr (strrchr ($file, '.'), 1))))
  3. {
  4. case 'gif':
  5. case 'jpg':
  6. case 'bmp':
  7. case 'png':
  8. $ico = 'pic.gif';
  9. break;
  10.  
  11. case 'doc':
  12. $ico = 'word.gif';
  13. break;
  14.  
  15. case 'xls':
  16. $ico = 'excel.gif';
  17. break;
  18.  
  19. case 'exe':
  20. case 'bat':
  21. $ico = 'exe.gif';
  22. break;
  23.  
  24. default:
  25. $ico = 'onbekend.gif';
  26. }
Offline hendrik007 - 07/08/2006 18:29
Avatar van hendrik007 Nieuw lid ja jexus dat werkt perfect bedankt he:p
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.235s