ugrás a tartalomhoz

Resource id #7

kovacsaaron · 2010. Nov. 10. (Sze), 11.51
Egy galéria kilistázásán dolgozok, és mikor a fájlból a galéria nevét akarom kiolvastatni, ki is olvassa, de mikor fájlba írja csak annyi jelenik meg, hogy Resource id#7.
Itt a forráskód:
$fajlnev = "list/".$_GET['mappa'].".php";
$fa = fopen( $fajlnev, "r" ) or die("$fajlnev nem nyitható meg");
while ( ! feof( $fa ) )
{
$sor = fgets( $fa, 1024 );
print "$sor<br>";
}
fclose($fa);

$dirc = "list";
if (is_dir($dirc)) {
$dhc=@opendir($dirc);
while (($filec = readdir($dhc)) !== false) {
$rendezc[] = ($filec);
}
rsort($rendezc);
do{
if (!is_dir($dirc."/".current($rendezc)) && current($rendezc) != "." && current($rendezc) != "..") {
$kiirc .= "<a href='";
$kiirc .= current($rendezc);
$kiirc .= "'>";
$kiirc .= ($fa);
$kiirc .= "</a>";
$kiirc .= "<br>";
$kiirc .= "
";
}
} while(next($rendezc));
closedir($dhc);
}
file_put_contents("center.php", $kiirc );
 
1

$kiirc .= ($fa);Igaza van. A

kuka · 2010. Nov. 10. (Sze), 12.04
$kiirc .= ($fa);
Igaza van. A $fa, lévén az fopen() adta vissza, egy erőforrás, azaz resource. Az ilyent nem lehet közvetlenül kiíratni és nincs is értelme, mivel rendszerint nem rendelkeznek saját tartalommal.

Szerintem jobb lenne ha elmagyaráznád mi a célod, hadd ne kelljen abból a szívezetlen és rendezetlen forráskódból kitaláljuk.
2

.

kovacsaaron · 2010. Nov. 10. (Sze), 12.17
A list mappába van egy fájl amiben 1 sor van. Ezt kiolvasom és ki is írja.
A második részben a center.php fájlba egy egyszerű linket rak ki: <a href='20101027.php.php'>Resource id #7</a><br> és a $fa értékét kellene beleraknia Resource id #7 helyére.

Ha úgy csinálom, hogy nem olvasom ki az előző fájlból, hanem a form adja neki értéket, akkor beírja de az összes link nevének az utoljára kiolvasottat írja.

Sorry ha gubancos a téma, de még eléggé kezdő vagyok.
3

és a $fa értékét kellene

kuka · 2010. Nov. 10. (Sze), 12.39
és a $fa értékét kellene beleraknia Resource id #7 helyére.
Akkor megismétlem, az erőforrásnak nincs tartalma, a közvetlen kiíratása értelmetlen.

Vess egy pillantást arra, amire azt írod, hogy "és ki is írja". Az rendben van, mert ott nem a $fa-t íratod ki, hanem a belőle kiolvasott $sor-t. Tehát a $fa-s hozzárendelést írd át ahhoz hasonlatosan:
$kiirc .= $sor;
4

.

kovacsaaron · 2010. Nov. 10. (Sze), 12.47
Valóban :) ez csak figyelmetlenség volt, most már nem írja ki a Resource #7-et, hanem üresen marad, szóval valami mi hibádzik :(
5

most már nem írja ki a

kuka · 2010. Nov. 10. (Sze), 13.07
most már nem írja ki a Resource #7-et, hanem üresen marad
A list mappába van egy fájl amiben 1 sor van.
Ebből én arra következtetek, hogy mégsem 1 soros az az állomány, hanem 2, a második sor pedig üres. Talán a legegyszerűbb ha az olvasásnál a whilet lecseréled ifre:
if ( ! feof( $fa ) )
Bár tisztább munka volna ha inkább a teljes fopen()+fgets()+fclose()-t lecserélnéd egyetlen file_get_contents()-re.
6

if

kovacsaaron · 2010. Nov. 10. (Sze), 13.45
if-el mostmár működik is csak nem az eredeti elképzeléseim szerint.

Létrehoz mindent de rosszul.

<a href='20101029.php'>Album 4</a><br>
<a href='20101028.php'>Album 4</a><br>
<a href='20101027.php'>Album 4</a><br>
<a href='20101026.php'>Album 4</a><br>

A linkek jók de az utoljára megadott albumnevet írja be mindenhova ami ugye a $sor.
7

És mégis mi mást

kuka · 2010. Nov. 10. (Sze), 13.54
És mégis mi mást írhatna?

Akkor megismétlem, jobb lenne ha elmagyaráznád mi a célod. Meséld el, hogy ha kézzel állítanád össze azt a szöveget amit a center.php állományba íratsz, akkor mit honnan szednél össze hozzá. Tehát algoritmust/pszeudokódot/folyamatábrát írj, hogy megértsük a mozgást.
8

így működne

kovacsaaron · 2010. Nov. 10. (Sze), 14.03
Na akkor írom.
Formba megadod az album mappájának a nevét, album címét és dátumát. Nekem ez szépen meg is csinálja albumot, de egy plusz fájlba én létre szeretnék hozatni egy link listát az elkészült albumokról ami így nézne ki:
<a href='20101027.php'>Album 3 - 2010.10.27</a><br>
<a href='20101026.php'>Album 2 - 2010.10.26</a><br>
<a href='20101025.php'>Album 1 - 2010.10.25</a><br>
Öszvissz ennyit kell tartalmaznia a fájlnak.