Sanokaas mikä tässä koodissa on vikana?
serverillä on samassa kansiossa tiedostot.dat ja tiedostot.exe
tiedostot.datin sisältö on "tiedosto.exe|9"
<?php $tamatied = $_SERVER['PHP_SELF']; foreach(glob("*.dat") as $file) { $file = explode("|", $file); echo "<a href=\"".$tamatied."?file=".$file[0]."\">".$file[0]."</a> - ".$file[1]." \n"; } ?>
Tämä tulostaa vain Linkin osoitteeseen tiedosto.dat - ja tyhjää eli tuo
- ".$file[1]."
tulostaa vain -
Vika löytyy tuosta:
$file = explode("|", $file);
Yrität explodettaa tiedoston nimen, et tiedoston sisältöä. Tässä oikea rivi:
Nyt se tulostaa jokaisen kohdalla "Array" vaikka niissä onkin ne [1] ja [0]:t :(
array explode ( string separator, string string [, int limit])
eli sun pitää explodee tiedoston rivit erikseen tai jos niitä on yksi niin implodee filen palauttama array "":llä.
Eli? Onko esimerkkejä?
<?php $tamatied = $_SERVER['PHP_SELF']; foreach(glob("*.dat") as $file) { $rivit = file($file); foreach($irvit as $filu){ $filee = $file = explode("|",$filu); echo "<a href=\"".$tamatied."?file=".$filee[0]."\">".$filee[0]."</a> - ".$file[1]." \n"; } } ?>
Edit: itseasiassa toi toiminukkaan, pilkkominen unohtui :)
Tällein voisi toimia.
Hups, huomaa taas että on tullut kirjoteltua nukkumaanmenoajan jälkeen. Mutta sattuu sitä näköjään muillekin, tuolla on Nikon koodissa on pikku typo:
Aihe on jo aika vanha, joten et voi enää vastata siihen.