Avatar billede sukos Juniormester
04. juli 2003 - 08:20 Der er 20 kommentarer og
1 løsning

Hvorfor får jeg en NOTICE

while (false !== ($files = readdir($path))) {

$ext = pathinfo($files);

if (preg_match("/gif/", @strtolower($ext["extension"]))) {

hvis jeg ikke sætter @ foran strtolower får jeg en notice i ver. 4.3.2
Hvorfor det?
Skal lige siges at error_reporting er sat til E_ALL, på begge maskiner jeg har testet på.
Avatar billede sukos Juniormester
04. juli 2003 - 08:21 #1
hehe, 4.2.3 mener jeg vist!
Avatar billede avminarm Juniormester
04. juli 2003 - 08:45 #2
jeg havde selv problemet med nogle switch($_GET['op']) - kodestumper, men hvis jeg satte en if(isset($_GET['op']) ind foran fik jeg ingen notice.
Avatar billede sukos Juniormester
04. juli 2003 - 08:49 #3
Ja, men her spørger jeg jo ikke om en var er sat.

Jeg åbner et dir for at kikke efter gif-filer, og for at være sikker på at få dem alle med, bruger jeg strtolower, da nogle gif-filer kan være gemt som billede.GIF, men hehe, der er vist noget med at preg_match kan ignore store og små.
Kikker lige :O)
Avatar billede sukos Juniormester
04. juli 2003 - 08:54 #4
For nu at bruge manualens eks.

<?php
if (preg_match ("/php/i", "PHP is the web scripting language of choice.")) {
print "A match was found.";
} else {
print "A match was not found.";
}
?>

JAJA, jeg spilder sgu tiden ind imellem! :O)
Avatar billede erikjacobsen Ekspert
04. juli 2003 - 08:56 #5
Så skal du også gøre det rigtigt.

if (preg_match("/\.gif$/i", $ext["extension"])) {
Avatar billede sukos Juniormester
04. juli 2003 - 08:58 #6
Vil jeg helst! :O)
Men der skal jo ikke bruges punktum?
Og hvad gør $?
Avatar billede erikjacobsen Ekspert
04. juli 2003 - 09:02 #7
gif filer hedder typisk "xxxxx.gif", så der er et punktum, og extension
står til sidst. Det er såmænd bare det.
Avatar billede sukos Juniormester
04. juli 2003 - 09:05 #8
Jamen,
$ext = pathinfo("min.gif");
echo $ext["extension"];
gir' jo "gif", altså intet punktum?
Avatar billede erikjacobsen Ekspert
04. juli 2003 - 09:08 #9
Ok, got me. Men så skal du

if (preg_match("/^gif$/i", $ext["extension"])) {
Avatar billede sukos Juniormester
04. juli 2003 - 09:12 #10
OK,
men,^ betyder "alle" ? (right?)
Og hvad gør så $ ?
Opretter gerne et spm. for en uddybende forklaring.
Altså hvorfor skal jeg gøre så'n?
Avatar billede sukos Juniormester
04. juli 2003 - 09:13 #11
Sagt på en anden måde, kan ikke se hvorfor jeg burde gøre så'n.
Avatar billede erikjacobsen Ekspert
04. juli 2003 - 09:22 #12
Uden ^ og $ vil du også matche en ekstension, der hedder agifa
De siger at du skal matche fra start til slut
Avatar billede erikjacobsen Ekspert
04. juli 2003 - 09:23 #13
Og når vi nu er kommet så langt, så kan vi se at det li'så godt kan gøres

  if (strtolower($ext["extension"]))='gif') {
Avatar billede sukos Juniormester
04. juli 2003 - 09:28 #14
Du er nu en guttermand, erik!!!
Men strtolower skulle jo netop nu ikke være nødvendig, når der bruges i med preg_match?
Avatar billede erikjacobsen Ekspert
04. juli 2003 - 09:33 #15
if (strtolower($ext["extension"]))=='gif') {

mener jeg selvfølgelig. Men reg_exp er dyrere. Din notice kommer vel af
at ikke alle dine filer har en extension. Derfor kan du med fordel smække
en @ på.
Avatar billede sukos Juniormester
04. juli 2003 - 09:43 #16
Ok!
Skal jeg ik' lige lave et spm med de point jeg selv har taget igen, så du kan få dem?
Du fortjener dem!!!
For en nemmere/hurtigere måde at finde gif'er, samt en mulig forklaring på den NOTICE
Avatar billede sukos Juniormester
04. juli 2003 - 09:44 #17
Avatar billede erikjacobsen Ekspert
04. juli 2003 - 09:45 #18
nej nej, du skal ikke fylde eksperten.dk med den slags støj ;)
Avatar billede sukos Juniormester
04. juli 2003 - 09:47 #19
Jamen du svarede jo på mit oprindelige spm, og gav mig samtidig lidt mere indblik i PHP!!!
Avatar billede erikjacobsen Ekspert
04. juli 2003 - 09:51 #20
Jeg har ikke bedt om point. Så jeg hopper ud af spørgsmålet.
Avatar billede sukos Juniormester
04. juli 2003 - 09:55 #21
ok du! :O(
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester