/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
newbiespørgsmål omkring filendelser og if
Fra : Jonas Voss


Dato : 02-04-02 20:20

Okay, komplet php-grønskolling her.

Det er med hjælp fra php.net lykkedes mig at lave en index.php fil i en
mappe der er fyldt med .jpg- og .avi-filer [det er fra et
digitalkamera]. php'en i index-filen læser indholdet af mappen og
printer det i en nydelig HTML-liste med links der åbnes i "showme.php" -
hvor stien til billedet bliver smidt ind i en skabelon, og billedet
bliver vist på mest fantastiske måde. Jeg er allerede nu stor fan af
php, skønt og effektivt værktøj.

Mine små fire timers erfaring med php tillader mig dog ikke at
gennemskue hvordan jeg laver en if kommando der åbner avi-klippene i en
anden skabelon end .jpg-filerne.

Kan man få php'en til at 'smage' på filendelserne med regex og sende dem
til hver sin skabelon på grundlag af resultatet?

Enhver hjælp modtages med kyshånd.

--
//Jonas @ 55.7,12.5
blog | <http://verture.net/>
webhjælp | <http://verture.net/deiw/>
højpandet | <http://geografi.hjem.wanadoo.dk/>

 
 
Niels Andersen (02-04-2002)
Kommentar
Fra : Niels Andersen


Dato : 02-04-02 20:36

Jonas Voss wrote in <1fa1678.1rbjpju1y87ja8N%spamthis@verture.net>:
> Kan man få php'en til at 'smage' på filendelserne med regex og sende dem
> til hver sin skabelon på grundlag af resultatet?

if (substr($filnavn, -4) == '.jpg' || substr($filnavn, -5) == '.jpeg') {
// Det er nok en jpeg-fil
} elseif (substr($filnavn, -4) == '.avi') {
// Det er nok en avi-fil
} else {
// Det er vist hverken jpeg eller avi
}

Jeg skriver "nok" og "vist" fordi det bliver afgjort ud fra filnavnet. Men
man kan jo kalde en fil næsten hvad man har lyst til, uanset indholdet. Her
vælger du altså at stole på, at slutningen af filnavnet beskriver indholdet
i filen.

Hvis det problem er relevant for dig, så bare sig til igen. :)

--
Mvh.

Niels Andersen

Jonas Voss (02-04-2002)
Kommentar
Fra : Jonas Voss


Dato : 02-04-02 21:12

Niels Andersen <niels-usenet@myplace.dk> wrote:

> if (substr($filnavn, -4) == '.jpg' || substr($filnavn, -5) == '.jpeg') {
> // Det er nok en jpeg-fil
> } elseif (substr($filnavn, -4) == '.avi') {
> // Det er nok en avi-fil
> } else {
> // Det er vist hverken jpeg eller avi
> }

Perfekt!

Jeg implementerede det godt nok lidt anderledes, men det virker dæleme.
Tusind tak <kyshånd i fri dressur> :)

if (($file !== ".") && ($file !== "..") && (substr($file, -5) !=
".html") && (substr($file, -4) != '.AVI'))
print ("<li><a
href=\"".$GLOBALS["path"]."showme.html?file=".$file."\">".$file."</a>");

elseif (substr($file, -4) == '.AVI')
print ("<li><a
href=\"".$GLOBALS["path"]."showmeavi.html?file=".$file."\">".$file."</a>
");

--
//Jonas @ 55.7,12.5
blog | <http://verture.net/>
webhjælp | <http://verture.net/deiw/>
højpandet | <http://geografi.hjem.wanadoo.dk/>

Niels Andersen (02-04-2002)
Kommentar
Fra : Niels Andersen


Dato : 02-04-02 23:42

Jonas Voss wrote in <1fa19bj.2z4pcc14flt4sN%spamthis@verture.net>:
> Jeg implementerede det godt nok lidt anderledes, men det virker dæleme.

Godt! :)
Det værste man kan gøre er, at kopiere det givne eksempel, og bruge det som
det er. Det lærer man ikke noget af, og dem der skriver eksemplet spilder
deres tid. :)

At du kan skrive det om viser at du forstår i hvert fald noget af det. :)
Er der noget af det du ikke forstår, så bare sig til!

--
Mvh.

Niels Andersen

Jonas Voss (03-04-2002)
Kommentar
Fra : Jonas Voss


Dato : 03-04-02 02:34

Niels Andersen <niels-usenet@myplace.dk> wrote:

> At du kan skrive det om viser at du forstår i hvert fald noget af det. :)

(: baah, tjaah, en lille smule måske. Men dette kan alligevel gå hen og
blive et langt indlæg, da min overordnede forståelse for php stadig kan
stå med 16pt fed verdana på bagsiden af et lille frimærke.

> Er der noget af det du ikke forstår, så bare sig til!

OK, det du hjalp mig med før har jeg sådan næsten fod på, men nu har jeg
til gengæld et nyt spørgsmål (;

Som det er nu, kaster jeg indholdet af mappen ud i html-dokumentet på
listeform.

Jeg kan allerede nu se, at jeg får en ordentlig røvfuld billeder jeg
skal have listet, og det ser ikke så djævlegodt ud når det bare står i
en søjle ude til venstre i bruseren. Derfor tænkte jeg, at en tabel
kunne gøre det. Indtil videre er det dog kun lykkedes mig, at smide
filnavnene ind i en lang række, fra lodret listning til vandret listning
(sheesh), fint indkapslede i <td> tags, men der skulle jo også gerne
komme nogle flere rækker ind i tabellen vha. <tr> tags.

Inde i mit hoved har jeg en syg idé om at jeg skal bruge noge while
løkker der tæller nedaf. Lad os sige jeg har 25 billeder liggende, hvis
links jeg skal have smidt ind i en 5x5 tabel.

Min syge idé:

<html>
<body>

<?php

$r = 1;
$k = 1;

function list_dir($dir) {
$handle=opendir($dir);

echo ("<table>");
while ($file = readdir($handle)) {
/* stripper lige de første dele af filnavnet */
$strip_impg = "";
$file = str_replace("IMPG00", $strip_impg, "$file");
}
while ($r <= 5) {
echo ("<tr>");
while ($k <= 5) {

if yadda-yadda-yadda {
print ("<td><a href=\"fillink\"</a><td>");
$k++;

} elseif foo-foo-bar {
print ("<td><a href=\"fillink\"</a><td>");
$k++;

/* følgende er sakset fra det oprindelige script på php.net */

} if (is_dir($file) && $file != '.' && $file != '..') {
$toto = $GLOBALS["path"];
$GLOBALS["path"] .= $file."/";
chdir ($file);
list_dir(".");
$GLOBALS["path"] = $toto;
chdir ("..");
}
}
echo ("<tr>");
$r++;
}
echo ("</table>")
}

$directory = "dc"; /* navnet på den mappe index.php ligger i */

$GLOBALS["path"] = "http://".$HTTP_HOST."/".$directory."/";
list_dir(".");

?>
</body>
</html>

Det blev både langt og sent, god kamp, hvis der er nogen der gider (:

--
//Jonas @ 55.7,12.5
blog | <http://verture.net/>
webhjælp | <http://verture.net/deiw/>
højpandet | <http://geografi.hjem.wanadoo.dk/>

Kim Emax - ayianapa.~ (06-04-2002)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 06-04-02 14:15


"Jonas Voss" <spamthis@verture.net> skrev

> Jeg kan allerede nu se, at jeg får en ordentlig røvfuld billeder jeg
> skal have listet, og det ser ikke så djævlegodt ud når det bare står i
> en søjle ude til venstre i bruseren. Derfor tænkte jeg, at en tabel
> kunne gøre det. Indtil videre er det dog kun lykkedes mig, at smide
> filnavnene ind i en lang række, fra lodret listning til vandret listning
> (sheesh), fint indkapslede i <td> tags, men der skulle jo også gerne
> komme nogle flere rækker ind i tabellen vha. <tr> tags.
>
> Inde i mit hoved har jeg en syg idé om at jeg skal bruge noge while
> løkker der tæller nedaf. Lad os sige jeg har 25 billeder liggende, hvis
> links jeg skal have smidt ind i en 5x5 tabel.

du vil gerne have en <tr> efter hvert 5 billede, ik? modulo er din ven

for($i=0;$i<30;$i++) {
if($i%5 == 0)
print "</TR><TR>";
print "<TD>billede $i</TD>";
}

Dette starter ved 0, men du har ideen.

--
Take Care
Kim Emax
http://www.emax.dk
http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Jonas Voss (10-04-2002)
Kommentar
Fra : Jonas Voss


Dato : 10-04-02 17:39

Kim Emax - ayianapa.dk <newsgroup@fjerndette-ayianapa.dk> wrote:

> du vil gerne have en <tr> efter hvert 5 billede, ik? modulo er din ven
>
> for($i=0;$i<30;$i++) {
> if($i%5 == 0)
> print "</TR><TR>";
> print "<TD>billede $i</TD>";
> }
>
> Dette starter ved 0, men du har ideen.

Tak for forslaget, har ikke fået det testet endnu, men det ligner
_meget_ noget jeg kan bruge.

Takker (;

--
//Jonas @ 55.7,12.5
blog | <http://verture.net/>
webhjælp | <http://verture.net/deiw/>
højpandet | <http://geografi.hjem.wanadoo.dk/>

Kim Emax - ayianapa.~ (11-04-2002)
Kommentar
Fra : Kim Emax - ayianapa.~


Dato : 11-04-02 14:21


"Jonas Voss" <spamthis@verture.net> skrev i

> Tak for forslaget, har ikke fået det testet endnu, men det ligner
> _meget_ noget jeg kan bruge.
>
> Takker (;

så lidt... Jeg skulle måske lige nævne at modulo returnerer det
tiloversblevne _heltal_, når tallene er divideret op mod hinanden, f.eks.
3%2 giver 1, 7%5 giver 2 15%6 giver 3 osv

--
Take Care
Kim Emax - Freelance programmør - Pt. Job og opgavesøgende.
http://www.emax.dk
http://www.ayianapa.dk
Køb din vin online på http://www.gmvin.dk,
Danmarks måske mest avancerede VinWebShop



Søg
Reklame
Statistik
Spørgsmål : 177504
Tips : 31968
Nyheder : 719565
Indlæg : 6408549
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste