[php] string to lowerstring

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
EDIT: Ik heb deze posting verbeterd. Ik heb nu de forumrules even doorgenomen. Normaal lees ik alleen maar op GoT, maar vandaag post ik ook echt iets :D.


Ik krijg het maar niet voor elkaar(ik doe iets fout, maar weet niet wat) om een extensie(bijv. JPG) naar lowercase(bijv. jpg) te converteren. Het zal vast wel iets zijn met haakjes of de returnvalue van mb_strtolower. Iemand suggesties? ik zit met zoiets simpels al weer 2 uur te kloten. ik heb natuurlijk ook al gekeken op http://nl3.php.net/manual/nl/function.mb-strtolower.php , er ik doe volgens mij niets vout. ik heb al omweggetjes geprobeerd enz, maar volgens mij heeft het dus wat te maken met $ext[1] ofzow.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
$foto_dir="d:\\www\\fotos\\";

if ($dir = @opendir($foto_dir)){
    while (false !== ($plaatje = readdir($dir))){

    $ext=explode('.',$plaatje);
    $str = $ext[1];
    $lower_str = mb_strtolower($str);


        if($plaatje != '.' && $plaatje != '..' && $lower_str == 'jpg'){
            echo "[img]'$foto_dir$plaatje'><BR[/img]";
       } 
 
   }
}

?>


Als ik gewoon alleen jpg plaatjes heb en laat regel 8 en 9 weg(dus zonder te converteren naar lowercase), dan doet de code het perfect.

[ Voor 6% gewijzigd door Verwijderd op 30-06-2004 13:56 ]


Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Doe ff print_r($ext); dan weet je hoe die array eruit ziet en of je wel werkelijk het goeie te pakken hebt.
En verder, waarom gebruik je precies mb_strtolower?:?

Acties:
  • 0 Henk 'm!

  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05 09:40

GX

Nee.

het is gewoon strtolower("JPG") hoor.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja, dat is het. Maar op de PHP.net stond echt erbij dat het mb_strtolower was(ik in iig de conclusie trok dat het zo zou moeten werken!).

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Verwijderd schreef op 30 juni 2004 @ 13:56:
EDIT: Ik heb deze posting verbeterd. Ik heb nu de forumrules even doorgenomen. Normaal lees ik alleen maar op GoT, maar vandaag post ik ook echt iets :D.


Ik krijg het maar niet voor elkaar(ik doe iets fout, maar weet niet wat) om een extensie(bijv. JPG) naar lowercase(bijv. jpg) te converteren. Het zal vast wel iets zijn met haakjes of de returnvalue van mb_strtolower. Iemand suggesties? ik zit met zoiets simpels al weer 2 uur te kloten. ik heb natuurlijk ook al gekeken op http://nl3.php.net/manual/nl/function.mb-strtolower.php , er ik doe volgens mij niets vout. ik heb al omweggetjes geprobeerd enz, maar volgens mij heeft het dus wat te maken met $ext[1] ofzow.

<SNIP>

Als ik gewoon alleen jpg plaatjes heb en laat regel 8 en 9 weg(dus zonder te converteren naar lowercase), dan doet de code het perfect.
Waarom gebruik je geen getimagesize ?
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
$foto_dir="d:\\www\\fotos\\";

if ($dir = @opendir($foto_dir)){
    while (false !== ($plaatje = readdir($dir))){

    $img=getimagesize($foto_dir.$plaatje);
    if($img && $img[2] == 'JPG'){
            printf("[img]'%s%s'[/img]<BR>", $foto_dir, $plaatje, $img[3]);
       } 
 
   }
}

zo uit het hoofd niet getest!

[ Voor 18% gewijzigd door LuCarD op 30-06-2004 14:08 ]

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 12:54
De mb in mb_strtolower() staat voor Multibyte String, op php.net staat daar meer over. Maar jij wilt waarschijnlijk een doodnormale string manipulatie doorvoeren en dan kom je in deze functies terecht.

Acties:
  • 0 Henk 'm!

  • Osiris
  • Registratie: Januari 2000
  • Niet online
Wat ik ook niet snap:

Je foto in de dir is toch écht JPG.. Vervolgens ga je die lowercase maken naar jpg.. Grote kans dus dat je webserver een 404 geeft, omdat JPG niet hetzelfde is als jpg :) (Linux-servers na mijn weten doen dat.)

Acties:
  • 0 Henk 'm!

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Je weet ook dat alleen jij de plaatjes kan zien? En niet iemand van buiten. Aangezien alle foto's verwijzen naar jouw d drive. En op mijn d drive staan jouw foto's niet.... :)

Programmer - an organism that turns coffee into software.


Acties:
  • 0 Henk 'm!

  • OkkE
  • Registratie: Oktober 2000
  • Laatst online: 04-09 08:16

OkkE

CSS influencer :+

Het zijn niet toevallig foto's met twee (of meer) punten (.) in de bestandsnaam? Aangezien je split op de punt.. Zeker als het om eigen plaatjes gaat (waarvan je zeker weet dat de extentie 3 chars is (dus geen JPEG)), dan zou ik eerder een substr() gebruiken als een explode() denk ik.

Verder zou ik, als je dat nog niet getest had, een de strtolower() proberen, dus zonder de "md_".

“The best way to get the right answer on the Internet is not to ask a question, it's to post the wrong answer.”
QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers.

Pagina: 1