[php/html] zalamování stránek

Webdesign, HTML, CSS, Flash, PHP, ASP, .NET, JavaScript. Kritika www stránek na Smetišti.

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod Luke608 23. 6. 2007 14:26

Čau lidi. Vysvětlím vám svojí situaci. Mám stránku s obsahem a chtěl bych nějak udělat, aby se při dosažení určitého počtu řádků (nebo délky) stránky stránka "zalomila". Příklad google s vyhledávacími výsledky (dole jdi na stránku 1,2,3, ...). Přesně tohle bych chtěl udělat. Šlo by to udělat tak, abych k stávajícímu php nepotřeboval jiný?
Snad mně někdo chápe. Díky moc.


// mbing : Téma přesunuto ● z Programování do Tvorba webových stránek a aplikací.
Luke608
Junior

Odeslat příspěvekod Z@chi 23. 6. 2007 14:40

Takze chces udelat jenom strankovani?
A co se ma strankovat? text? radky z databaze?

Odkud nacitas obsah stranky?
Z@chi
Junior
Uživatelský avatar

Odeslat příspěvekod Luke608 23. 6. 2007 14:52

includuju tam texťáky. takže jestli to jde tak aby se to po určitém definovaném počtu řádků obsahu (text, obrázky) stránkovalo. S databázi to nemá nic společného.
Luke608
Junior

Odeslat příspěvekod Aonym 23. 6. 2007 15:50

Stejně mi to není uplně jasné, includuješ textaky, a jejich obsah zobrazujes za sebou na stránce? Nebo vypisuješ seznam souborů?
Aonym

Odeslat příspěvekod Z@chi 23. 6. 2007 15:52

no tak nacitej ty textaky po "\n" - tzn konec radku.
Popripade si na zacatku nacti cely textak - dle toho jak je moc velky, a explodem si jej rozhod na jednotlive radky. a tim padem zjistits celkovy pocet radek a mas vsechny radky rozhazene v poli.
Potom uz jenom vypises pole od tve zacatecni hodnoty po tvou koncovou hodnotu.
Zobrazis si pocet stranek s odkazy ve kterych uvedes cislo stranky v nejakem parametru, ktery si predas prez GET.
Tento parametr si na strance zjisits a dle nej vypises prislusne radky.
Strankovani bude stejne jako kdybys pouzival napriklad databazi, jenom s tim rozdilem, ze budes vypisovat radky z textoveho souboru a limitovat je ve vypisu.
V databazi by jsi jenom pouzil funkci LIMIT a vybral si primo potrebne radky.
Z@chi
Junior
Uživatelský avatar

Odeslat příspěvekod Z@chi 23. 6. 2007 16:16

ameeck píše:Stejně mi to není uplně jasné, includuješ textaky, a jejich obsah zobrazujes za sebou na stránce? Nebo vypisuješ seznam souborů?o/quote]

Pochopil jsem to tak ze includuje vzdy pouze jeden textak, ktery chce rozsekat na radky a vypsat jenom urcite radky.
Z@chi
Junior
Uživatelský avatar

Odeslat příspěvekod Luke608 23. 6. 2007 16:22

jj přesně. ale s těmi řádky - chci zobrazit vždycky z jednoho texťáku který obsahuje třeba příklad 20 řádků. Chci zobrazit prvních 10 řádků a těch zbylých 10 řádků rozdělit (jak říkám, přesně jak u googlu - nastavené zobrazování po 20ti výsledcích na každou stránku... atd.).
Luke608
Junior

Odeslat příspěvekod Z@chi 23. 6. 2007 16:33

no vsak jsem ti to napsal jak :-)
Jak se rika, chytremu napovez, blbeho nakopni ( nebo tak nejak )

takze mas napriklad soubor a.txt, ve kterem je:
Kód: Vybrat vše
asdf
asdfasdf
adfasdfsd
sdfg
sdf
gsd
fasdf
asdf
asdf
asdf
asdf
asdfasdfa


text rozdeleny na jednotlive radky.

Potom si udelej soubor neco.php:
Kód: Vybrat vše
<?php
//nastaveni strany u strankovani
if( !Is_Numeric( $_GET['page'] ) )
    $page = 0;
   
//limit pet radku   
$limit = 5;

//otevreni a nacteni celeho souboru
$file = 'a.txt';
$f = fopen( $file, 'r' );
$all_data_from_txt = fread( $f, filesize( $file ) );
   
//rozdeleni do radku
$lines = explode("\n", $all_data_from_txt );   

//vypsani prislusnych radek
for( $i = ( $page * $limit ); $i < ( ( $limit * $page ) + $limit ); $i++ )
    print 'Line: ' . ( $i + 1) . ': ' . $lines[$i] . '<br />';
   
   
//zobrazeni strankovani   
print '<p>';
for( $i = 0; $i < ( count( $lines ) / $limit ); $i++ )
    print '<a href="?page=' . $i . '">' . $i . '</a> | ';
print '</p>';
?>


No treba nejak takto.

script jsem napsal pod cas jedne minutz, takze tam asi bude nejaka ta chyba. Netestoval jsem :-)
Z@chi
Junior
Uživatelský avatar

Odeslat příspěvekod Luke608 23. 6. 2007 16:40

joooo díky moc...
Luke608
Junior

Odeslat příspěvekod Master001 14. 9. 2008 19:45

Já potřebuji něco podobné , akorát aby se zalamovali slova místo řádků, když jsou moc dlouhá a bez mezery. Je to pro forko.

Poradte někdo pls.
Master001
Kolemjdoucí

Odeslat příspěvekod gandor 15. 9. 2008 21:26

to z@chi
existuje funkcia file - ta hned precita cely subor (bez jeho fopen otvarania) a hodi ho do array-a

to master001
aj pre teba existuje jedna pekna funkcia, z menom wordwrap...
ma 4 parametre s toho len 1 povinny. Parametre su
a, dany text na zalamovanie
b, mnozstvo pismen po kolkatich ma zalomit (defaultne 75)
c, co ma pouzit na zalomenie riadku (defaultne je \n ty budes asi chciet <br />)
d, ci ma zalamovat aj slova ak su moc dlhe tu musis dat true (default false)

ps. tato funkcia je "inteligentna" takze ak nemusi, tak to slovo nezalomi (t. z. ze ak mam 50 pismenny riadok a na 45. pismene dam 10 pismenne slovo, tak sa hodi do noveho riadku a vypise sa bez zalomenia... ale ak by som mal 60 pismenne slovo tak poslednych 10 znakov sa zalomy....)
gandor
Mírně pokročilý


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků