Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Frecventa modificata radio

Un nou pericol pt batrani

Ar trebuii sa vindem imobiliarele...

Dupa renuntarea la aparat dentar
 pelerinaj in Balcik

Noul format Jpegli iși propu...

Dade, dade

Parola la lock screen
 Deparazitare externa pisici fara ...

Seriale turcesti/coreene online H...

Merita un Termostat Smart pentru ...

Sfat achizitie MTB Devron Riddle
 Problema mare cu parintii= nervi ...

switch microtik

Permis categoria B la 17 ani

Sfaturi pentru pregatirea de eval...
 

Script php

- - - - -
  • Please log in to reply
30 replies to this topic

#1
NemoXP

NemoXP

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 12.01.2006
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
cosminnuss

cosminnuss

    Active Member

  • Grup: Members
  • Posts: 1,352
  • Înscris: 21.10.2005
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
cosminnuss

cosminnuss

    Active Member

  • Grup: Members
  • Posts: 1,352
  • Înscris: 21.10.2005
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
NemoXP

NemoXP

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 12.01.2006
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

#5
add

add

    Senior Member

  • Grup: Senior Members
  • Posts: 8,146
  • Înscris: 09.09.2003
use databases...

#6
ada80ro

ada80ro

    Member

  • Grup: Members
  • Posts: 625
  • Înscris: 16.05.2005
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
cosminnuss

cosminnuss

    Active Member

  • Grup: Members
  • Posts: 1,352
  • Înscris: 21.10.2005
Si daca are un "new line" in descriere la banc? Ce faci? :D

Quote

echo 'Descriere '.$descriere.'<br>';
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.... :)

#8
zuppy

zuppy

    elbonian

  • Grup: Senior Members
  • Posts: 8,247
  • Înscris: 12.10.2002
de ce nu postati problemele de php pe aria de php ?

#9
ada80ro

ada80ro

    Member

  • Grup: Members
  • Posts: 625
  • Înscris: 16.05.2005

View Postcosminnuss, 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.... :)
Ala e un cod sample pentru partea de paginatie, nu stiu ce dracu are el in fisierul text, poate sa aiba si taguri html in fisierul text, nu stiu cum sunt delimitate campurile etc.

Edited by ada80ro, 13 January 2006 - 17:56.


#10
NemoXP

NemoXP

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 12.01.2006
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
ada80ro

ada80ro

    Member

  • Grup: Members
  • Posts: 625
  • Înscris: 16.05.2005

View PostNemoXP, 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
cosminnuss

cosminnuss

    Active Member

  • Grup: Members
  • Posts: 1,352
  • Înscris: 21.10.2005
@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
ada80ro

ada80ro

    Member

  • Grup: Members
  • Posts: 625
  • Înscris: 16.05.2005

View Postcosminnuss, 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
cosminnuss

cosminnuss

    Active Member

  • Grup: Members
  • Posts: 1,352
  • Înscris: 21.10.2005

Quote

Si? Care e faza? Tu afisezi alea intr-o pagina
Era doar ceva in genu FYI, sa nu-si puna problema de ce are \n la sfarsit.

Edited by cosminnuss, 13 January 2006 - 23:23.


#15
NemoXP

NemoXP

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 12.01.2006
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
cosminnuss

cosminnuss

    Active Member

  • Grup: Members
  • Posts: 1,352
  • Înscris: 21.10.2005
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
NemoXP

NemoXP

    Junior Member

  • Grup: Members
  • Posts: 63
  • Înscris: 12.01.2006
<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
ada80ro

ada80ro

    Member

  • Grup: Members
  • Posts: 625
  • Înscris: 16.05.2005

View PostNemoXP, 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
Tie ca sa-ti mearga toata povestea asta in fiecare element din array-ul $lines trebuie sa ai cate un banc.
[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

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate