Script php
#1
Posted 13 January 2006 - 00:37
am si eu nevoie de un script php care sa ia intr-un .txt tot ce este intre <endline>
mai exact: vreau sa fac o pagina dinamica de bancuri... ele sa se ia dintr-un .txt si sa stie ca vine alt banc prin functia <endline> si pe pagina sa fie afisate 5 bancuri... si sa faca si pagini.. cum este pe www.nautilus.lx.ro/index_ro.php?url=flash_games_ro.php asta ia dintr-un folder toate swf-urile si le listeaza... ceva de genu vreau si eu doar ca sa listeze text (nu file) multumesc anticipat |
#2
Posted 13 January 2006 - 01:17
de ce nu folosesti o baza de date si sa iei de acolo bancurile?
E cea mai simpla solutie si cel mai usor de administrat |
#3
Posted 13 January 2006 - 01:37
Si un raspuns la intrebarea ta, daca am inteles ce vrei
$lines=file("fisierul_tau_cu bancuri.txt"); foreach($lines as $line) { echo "<p>".str_replace(Array("\n","\r"),"",$line)."</p>"; } Vei avea o problema totusi... Nu vei putea folosi "\n" in bancuri... totodata ce este un banc pe o linie. Incearca un delimitator sau direct niste <br>-uri inainte sa bagi bancurile in fisier. Edited by cosminnuss, 13 January 2006 - 01:53. |
#4
Posted 13 January 2006 - 10:35
oka, imi ia tot dintr-un txt, le afiseaza corespunzator.. dar... ca sa faca si pagini? sa puna 5 / pagina ?:)
mutumesc pt ajutorul de pana acu :D cosminnuss: pt mine e mai usor cu .txt :P |
#6
Posted 13 January 2006 - 13:38
Pentru paginatie vezi scriptul asta:
<html> <head> <title> </title> </head> <body> <?php $lines = file('text_sample.txt'); //numarul de valori afisat pe pagina $numPerPage = 4; //seteaza numarul paginii-default 1 $page = isset($_GET['page']) ? $_GET['page'] : 1; //seteaza elementul din $lines de la care incepe sa citeasca $start = ($page-1) * $numPerPage; //afiseaza continutul liniei for ($i=$start; $i<$start+$numPerPage; $i++) { if (isset($lines[$i])) { //proceseaza linie text list($nume,$descriere,$url,$tag)=explode('|',$lines[$i]);//$nume,$descriere,$url,$tag sunt campurile corespunzatoare unei linii-ex: name1|description1|url1|tag1 echo 'Numele '.$nume.'<br>'; echo 'Descriere '.$descriere.'<br>'; echo 'Url '.$url.'<br>'; echo 'Tag '.$tag.'<br>'; echo '<hr>'; } }#end for //calculeaza numarul total de pagini $totalPages = ceil(count($lines) / $numPerPage); $script_page=$_SERVER['PHP_SELF']; //afiseaza link inapoi if ($page!=1) { echo '<a href="'.$script_page.'?page='.($page-1).'">Previous</a> ';} //afiseaza numerele paginilor for ($i=1; $i<=$totalPages; $i++) { echo ($i==$page) ? $page.' ' : '<a href="'.$script_page.'?page='.$i.'">'.$i.'</a> '; }//end for //afiseaza link inainte if ($page!=$totalPages){ echo '<a href="'.$script_page.'?page='.($page+1).'">Next</a>';} ?> </body> </html> |
#7
Posted 13 January 2006 - 17:21
Si daca are un "new line" in descriere la banc? Ce faci? :D
Quote echo 'Descriere '.$descriere.'<br>'; echo 'Descriere '.nl2br($descriere).'<br>'; ...si ar mai fi si alte workaround-uri A, vezi ca $tag s-ar putea sa aiba un "\n" la capat.... :) |
#9
Posted 13 January 2006 - 17:37
cosminnuss, on Jan 13 2006, 17:21, said: Si daca are un "new line" in descriere la banc? Ce faci? :D incearca echo 'Descriere '.nl2br($descriere).'<br>'; ...si ar mai fi si alte workaround-uri A, vezi ca $tag s-ar putea sa aiba un "\n" la capat.... :) Edited by ada80ro, 13 January 2006 - 17:56. |
#10
Posted 13 January 2006 - 20:54
nu am nici o descriere, nici url, nici nume, nici tag... ideea e sa afiseze 4 bancuri intregi... ele sunt separate intre ele prin <endline> (un banc are mai multe randuri...)
Edited by NemoXP, 13 January 2006 - 20:57. |
|
#11
Posted 13 January 2006 - 21:27
NemoXP, on Jan 13 2006, 20:54, said: nu am nici o descriere, nici url, nici nume, nici tag... ideea e sa afiseze 4 bancuri intregi... ele sunt separate intre ele prin <endline> (un banc are mai multe randuri...) Doamne, e asa greu de priceput. Ala era un script sample de paginatie printr-un array. Am folosit un fisier text de-al meu. In fine, sa revin. Dupa $lines = file('text_sample.txt'); da un print_r($lines); si vezi daca bancurile alea se gasesc fiecare intr-un element din array. Daca da atunci foloseste ceva de genul: //afiseaza continutul liniei for ($i=$start; $i<$start+$numPerPage; $i++) { if (isset($lines[$i])) { echo '<p>'.$lines[$i].'</p>'; } }#end for Edited by ada80ro, 13 January 2006 - 21:40. |
#12
Posted 13 January 2006 - 23:01
@ada80ro: Ideea este ca functia file() va include la fiecare element din array-ul format si un "/n" la sfarsit. La asta ma refeream :)
|
#13
Posted 13 January 2006 - 23:07
cosminnuss, on Jan 13 2006, 23:01, said: @ada80ro: Ideea este ca functia file() va include la fiecare element din array-ul format si un "/n" la sfarsit. La asta ma refeream :) Si? Care e faza? Tu afisezi alea intr-o pagina html, in html nu conteaza ws-urile. Doar daca vrei sa folosesti nl2br care oricum pastreaza "\n" de la sfarsit insa nu vad rostul in cazul de fata, presupun ca bancurile alea or sa fie delimitate intr-un mod mai vizibil cu ajutorul unor taguri html. |
#14
Posted 13 January 2006 - 23:21
Quote Si? Care e faza? Tu afisezi alea intr-o pagina Edited by cosminnuss, 13 January 2006 - 23:23. |
#15
Posted 13 January 2006 - 23:23
da.. vad ca merge cat de cat.. dar imi afiseaza numai 4 randuri in banc...
ex: http://85.186.128.16...anc2.php?page=1 Edited by NemoXP, 13 January 2006 - 23:26. |
|
#16
Posted 13 January 2006 - 23:27
si codul folosit pana la urma care este?
Eventual si fisierul txt... Verifica cum ai "\n"-urile in .txt. Sa ai "\n"(ending line) doar la capatul bancurilor caci altfel nu stie scriptu unde se termina un banc. Edited by cosminnuss, 13 January 2006 - 23:31. |
#17
Posted 13 January 2006 - 23:34
<html>
<head> <title> </title> </head> <body> <?php $lines = file('text.txt'); //numarul de valori afisat pe pagina $numPerPage = 4; //seteaza numarul paginii-default 1 $page = isset($_GET['page']) ? $_GET['page'] : 1; //seteaza elementul din $lines de la care incepe sa citeasca $start = ($page-1) * $numPerPage; //afiseaza continutul liniei for ($i=$start; $i<$start+$numPerPage; $i++) { if (isset($lines[$i])) { echo '<p>'.$lines[$i].'</p>'; } }#end for //calculeaza numarul total de pagini $totalPages = ceil(count($lines) / $numPerPage); $script_page=$_SERVER['PHP_SELF']; //afiseaza link inapoi if ($page!=1) { echo '<a href="'.$script_page.'?page='.($page-1).'">Previous</a> ';} //afiseaza numerele paginilor for ($i=1; $i<=$totalPages; $i++) { echo ($i==$page) ? $page.' ' : '<a href="'.$script_page.'?page='.$i.'">'.$i.'</a> '; }//end for //afiseaza link inainte if ($page!=$totalPages){ echo '<a href="'.$script_page.'?page='.($page+1).'">Next</a>';} ?> </body> </html> asta e scriptul.... txt-ul e aici: http://85.186.128.16...utilus/text.txt nu se poate face sa ia ca banc urmator cand citeste "<endline>" sau altceva?? Edited by NemoXP, 13 January 2006 - 23:43. |
#18
Posted 13 January 2006 - 23:39
NemoXP, on Jan 13 2006, 23:23, said: da.. vad ca merge cat de cat.. dar imi afiseaza numai 4 randuri in banc... ex: http://85.186.128.16...anc2.php?page=1 [0] => banc1 [1]=>banc2 Ca sa se intample asta singurul "\n" trebuie sa fie la sfarsit. In momentul in care introduci text intr-un textarea si apesi enter se introduce cate un "\n"("\r\n") deci in mod normal nu ai doar un singur "\n". Ca sa elimini "\n" trebuie sa faci ceva de genul: //cum a zis si @cosminnuss $banc=nl2br($_POST['banc]);//ca sa le ai afisate corespunzator in html //elimini preventiv alte dracii care ar putea afecta citirea corecta $replace = array("\t", "\n", "\r\n", "\f","\r"); $banc=str_replace($replace,'',$banc)."\n"; //dupa care scrii $banc in text file. Edited by ada80ro, 13 January 2006 - 23:42. |
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users