Autor Zpráva
blast3r
Profil
Uplne jednoduchy skript:


<?

$file = "odkazy.txt";

if (isset($_POST['url']) && isset($_POST['nazov']) && isset($_POST['popis'])) {
$a = &$_POST['url'];
$b = &$_POST['nazov'];
$c = &$_POST['popis'];
$fp = fopen("$file", "a");
fwrite($fp, "<div align='left'><a href='$a' target='_blank' title='$b'>$a</a><br><br>$c<br><hr></div>");
fclose($fp);
}

include("$file");

?>


Potrebujem aby sa mi to zoradilo od najnov. po najstarsi.
PS: co je rychlejsie:
a) mat 1 subor so 100 000 riadkami,
b) mat 100 suborov so 100 riadkami,
c) viem ze najlepsie je cez databazu, ale k nej nemam pristup
krteczek
Profil
chceš listovat, nebo vypsat všechny?
zapisovat do souboru tak že to nejnovější přijde na začátek výpis bude potom podle tebe
po kolika to budeš zapisovat záleží na tobě, ale je zbytečné asi otvírat několikamegový soubor jen kvuli poslednim dvaceti záznamům
nebo načítat do pole jeden velky soubor a zatěžovat server, takže bych to řešil více soubory s tím že do dalšího souboru napíšeš číslo toho posledního, ještě bys měl vyřešit problemek spřechodem mezi soubory( v jednom načtu 10 odkazu a v druhem zbytek ) ale nevim jak to chceš koncipovat.
krteczek
Wertrik
Profil *


$file = "odkazy.txt";

$fp = FOpen ($file, "r");
$data = FRead ($fp, FileSize($file));
FClose($fp);



if (isset($_POST['url']) && isset($_POST['nazov']) && isset($_POST['popis'])) {

$a = &$_POST['url'];

$b = &$_POST['nazov'];

$c = &$_POST['popis'];

$fp = fopen("$file", "a");

$write.= "<div align='left'><a href='$a' target='_blank' title='$b'>$a</a><br><br>$c<br><hr></div>".$file; // spojis stare prispevky s novym tak aby ten novy byl na prvnim miste

fwrite($fp, $write);

fclose($fp);

}



include("$file");


nebo by to slo tak ze by jsi totam zapisoval tak jak to mas ale pro vypsani by jsi použil:


$vypis = file($file); // viz funkce file();

$pocet_radku = count($vypis); // viz funkce file();

for($i = $pocet_radku; $i <= $pocet_radku; $i--) { // vypiseme od konce po zacatek

echo $vypis[$i];

}

Wertrik
Profil *
samozrejme tam melo byt vi funkce count();
llook
Profil
Tahle věc:

$fp = FOpen ($file, "r");
$data = FRead ($fp, FileSize($file));
FClose($fp);

Lze v novějších PHP nahradit tímhle:

$data = file_get_contents($file);

Ale u takhle velkých souborů bych se toho vyvaroval, snadno bys mohl překročit paměťový limit pro jeden skript, zpravidla 8 MB.
blast3r
Profil
to Wertrik:

Mal si tam chybu, ale dik za radu.
Cely zdrojak ma vyzerat:


$file = "odkazy.txt";
$fp = FOpen ($file, "r");

$data = FRead ($fp, FileSize($file));

FClose($fp);

if (isset($_POST['url']) && isset($_POST['nazov']) && isset($_POST['popis'])) {
$a = &$_POST['url'];
$b = &$_POST['nazov'];
$c = &$_POST['popis'];
$fp = fopen("$file", "w");
$write.= "<div align='left'><a href='$a' target='_blank' title='$b'>$a</a><br><br>$c<br><hr></div>".$data;
fwrite($fp, $write);
fclose($fp);
}

include("$file");


Toto téma je uzamčeno. Odpověď nelze zaslat.

0