Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt pobierający dane z pliku i wyświetlajacy je
Forum PHP.pl > Forum > Przedszkole
Krzychur
Mam coś takiego w jakimś pliku powiedzmy pod nazwą czcionki.txr :
[php:1:4a6bb9b467]czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||
czcionki/2tech.gif|czcionki/2tech.rar|2Tech|14kB|ttf||[/php:1:4a6bb9b467]
Jak mam zrobić, aby jakiś skrypt wyświetlalał to w takim formacie:
[php:1:4a6bb9b467]<TABLE><TR>
<TD ROWSPAN="4"><IMG SRC="pierwsze |"></TD>
<TD>Nazwa:</TD><TD><A HREF="drugie |">
trzecie |</A></TD></TR>
<TR><TD>Rozmiar:</TD><TD>czwarte |</TD></TR>
<TR><TD>Format:</TD><TD>piąte |</TD></TR></TABLE>

<TABLE><TR>
<TD ROWSPAN="4"><IMG SRC="pierwsze |"></TD>
<TD>Nazwa:</TD><TD><A HREF="drugie |">
trzecie |</A></TD></TR>
<TR><TD>Rozmiar:</TD><TD>czwarte |</TD></TR>
<TR><TD>Format:</TD><TD>piąte |</TD></TR></TABLE>[/php:1:4a6bb9b467]
Oczywiście || w bazie oznacza kolejny wpis. Jeszcze przydałoby się, aby przed wynikami pojawiło się coś takiego:
[php:1:4a6bb9b467]Wyświetl: po (lista wyboru) wyniki [Wyświetl]<BR>
1, 2, 3, 4, 5, 6[/php:1:4a6bb9b467]
Oczywiście te cyfry na końcu to linki do kolejnych stron zgodnie z wyświetleniami bez żadnego "..." pomiędzy, jeżeli wyników jest za dużo. Z góry dziękuje.
Dawid Pytel
Najpierw całość ładujesz do tablicy przy użyciu funkcji file()
Następnie robisz pętle, gdzie kazda linijkę z osobna traktujesz funkcją explode() i wypisujesz dane.

W manualu przy tych dwóch funkcjach są wystarczające przykłady zebyś zrobił to samemu.
invx
kiedys znalazlem cos takiego. powinno sie przydac.
Cytat
Jak dokonywac operacji na plikach?
Drugi temat jaki moim zdaniem sie czesto pojawia to temat pracy z plikiem o strukturze:  
Kod
zapis11|zapis12|...|zapis1N

zapis21|zapis22|...|zapis2N

...

zapisM1|zapisM2|...|zapisMN


edycja takiego pliku:  
[php:1:13ad148738]
<?php  
//ustaw sciezke do pliku:  
$filename = "";  

$plik = file($filename);  
for( $i=0  ;  $i<count($plik)  ;  $i++)  
{  
   $wiersz = explode("|",chop($plik[$i]));  
   for( $j=0   ;  $j<count($wiersz)  ;   $j++)  
       echo $wiersz[$j]." ";  
   echo "<BR>";  
}  
?>
[/php:1:13ad148738]


wyciagniecie konkretnego zapisu z pliku  
[php:1:13ad148738]
<?  
//ustaw sciezke do pliku:  
$filename = "";  
//ustaw numer wiersza:  
$nr_y = 4;  
//ustaw numer zapisu w wierszu  
$nr_x = 2;  


$plik = file($filename);  
$wiersz = explode("|" , chop($plik[$nr_y-1]));  

//szukany zapis:  
$szukany_zapis = $wiersz[$nr_x-1];  
?>
[/php:1:13ad148738]


usuwanie z okreslonej pozycji  
[php:1:13ad148738]
<?php  
//ustaw sciezke do pliku:  
$filename = "";  
//ustaw numer wiersza do usuniecie  
$to_delete = 4;  

$plik = file($filename);  
$plik[$to_delete-1] = "";  
$plik = implode("",$plik);  
$fp = fopen($filename , "w");flock($fp,2);  
fputs( $fp , $plik);  
flock($fp,3);fclose($fp);  
?>
[/php:1:13ad148738]


dodawanie nowego wiersza na poczatek:  
[php:1:13ad148738]
<?php  
//ustaw sciezke do pliku:  
$filename = "";  
//zdefiniuj nowy wiersz  
$nowy = "...";  

$plik = file($filename);  
$plik = implode("",$plik);  
$plik = $nowy."rn".$plik;  
$fp = fopen($filename , "w");flock($fp,2);  
fputs( $fp , $plik);  
flock($fp,3);fclose($fp);  
?>
[/php:1:13ad148738]

dodawanie nowego wiersza na koniec:  
[php:1:13ad148738]
<?php  
//ustaw sciezke do pliku:  
$filename = "";  
//zdefiniuj nowy wiersz  
$nowy = "...";  

$plik = file($filename);  
$plik = implode("",$plik);  
$plik .= $nowy."rn";  
$fp = fopen($filename , "w");flock($fp,2);  
fputs( $fp , $plik);  
flock($fp,3);fclose($fp);  
?>
[/php:1:13ad148738]


dodawanie nowego wiersza na dowolnej pozycji  
[php:1:13ad148738]
<?php  
//ustaw sciezke do pliku:  
$filename = "";  
//zdefiniuj nowy wiersz  
$nowy = "...";  
//podaj pozycje na ktorej dodac:  
$nr_y = 4;  

$plik = file($filename);  
$plik[$nr_y-1] = $nowy."rn".$plik[$nr_y-1];  
$plik = implode("",$plik);  

$fp = fopen($filename , "w");flock($fp,2);  
fputs( $fp , $plik);  
flock($fp,3);fclose($fp);  
?>
[/php:1:13ad148738]


zmiana zawartosc dowolnego wiersza (aktualizacji rekordu)  
[php:1:13ad148738]
<?php  
//ustaw sciezke do pliku:  
$filename = "";  
//zdefiniuj nowy wiersz  
$nowy = "...";  
//podaj pozycje na ktorej zamienic:  
$nr_y = 4;  

$plik = file($filename);  
$plik[$nr_y-1] = $nowy."rn";  
$plik = implode("",$plik);  
$fp = fopen($filename , "w");flock($fp,2);  
fputs( $fp , $plik);  
flock($fp,3);fclose($fp);  
?>
[/php:1:13ad148738]



zmiana zawartosc dowolnej pozycji w pliku (aktualizacji komorki)  
[php:1:13ad148738]
<?php  
//ustaw sciezke do pliku:  
$filename = "";  
//zdefiniuj nowa wartosc komorki  
$nowa = "...";  
//podaj pozycje wiersza na ktorej zamienic:  
$nr_y = 4;  
//podaj numer komorki w wierszu na ktorej zamienic  
$nr_x = 2;  


$plik = file($filename);  

$wiersz = $explode("|" , chop($plik[$nr_y-1]));  
$wiersz[$nr_x-1] = $nowa;  
$wiersz = implode("|" , $wiersz);  

$plik[$nr_y-1] = $wiersz."rn";  
$plik = implode("",$plik);  

$fp = fopen($filename , "w");flock($fp,2);  
fputs( $fp , $plik);  
flock($fp,3);fclose($fp);  
?>
[/php:1:13ad148738]
Liko
[php:1:b67a7e207c]<?php

$file_name = 'baza.txt';

$file_data = file( $file_name );


for( $i=0; $i<count( $file_data ); $i++ )
{
$file = explode( '|', $file_data[$i] );

echo '
<table>
<tr>
<td rowspan="4"><img src="'.$file['0'].'"></td>
<td>Nazwa:</td>
<td><a href="'.$file['1'].'">'.$file['2'].'</a></td>
</tr>
<tr>
<td>Rozmiar:</td><td>'.$file['3'].'</td>
</tr>
<tr>
<td>Format:</td><td>'.$file['4'].'</tr>
</tr>
</table>';
}
?>[/php:1:b67a7e207c]
Krzychur
Skorzystałem z tego ostatniego kodu, jednakże jak zrobić, aby wyświetlał po standardowo 10 wyników i jak zrobić linki do następnych i poprzednich stron z wynikami (najlepiej, aby linki same się pojawiały jak są do tego potrzebne)?
Dawid Pytel
No to... POSZUKAJ!!!!
Ja też zaraz mógłbym zacząc wymieniać co jest mi potrzebne.
Szukaj pod "Pozycjonowanie wyników".
Krzychur
http://www.google.com/search?q=Pozycjonowa...=utf-8&oe=utf-8
no niestety znajduje tylko wyniki o pozycjonowaniu stron w wyszukiwarakch, a tak w ogóle to trudno znaleźć jest coś tak prostego sad.gif
Dawid Pytel
Przerpasza, o porcjowanie chodziło. "Przejęzyczenie".
Krzychur
Dobrze znalazłem, dzięki za naprowadzenie na dobrą drogę...
Krzychur
[php:1:6d39a1b4af]<?
$max="4";
$licznik="0";
if($dalej==""){$dalej="0";}
else{$dalej=$max;}
if($start==""){$start="0";}
else{$start=$start+$dalej;}
if($show==""){$show=$max;}
else{$show=$show+$dalej;}

if($wstecz==""){$wstecz="0";}
else{$wstecz=$max;}
if($start==""){$start="0";}
else{$start=$start-$wstecz;}
if($show==""){$show=$max;}
else{$show=$show-$wstecz;}

$dane = file("baza.txt");
for ($print=$start; $print < $show; $print++)
{split("|", chop($dane[$print]));
$pozycja = explode("|", $dane[$print]);
$licznik++;
if(($pozycja[0]!="") && ($pozycja[1]!="")){
echo "<a href=mailto:"$pozycja[0]">$pozycja[1]</a><br>";}
}
$pstrona = $show/$max-1;
$tstrona = $show/$max;
$nstrona = $show/$max+1;
echo"Jeste¶ na <B>$tstrona</B> stronie.<BR>";
if($start>="$max"){
echo"<A HREF="?wstecz=$max&start=$start&show=$show">IdĽ do <B>$pstrona</B> strony</A> ";}
if($show<count($dane)){
echo"<A HREF="?dalej=$max&start=$start&show=$show">IdĽ do <B>$nstrona</B> strony</A>";}

?>[/php:1:6d39a1b4af]
Czy ktoś mógłby mi powiedzieć, co powinna zawierac zmienna $istron oznaczająca ilość stron? PRzydałaby się...
a tak przy okazji jeszcze trzebaby poprawic cos, bo czasami zamiast odpowiedniego numerka strony pojawia sie jakis tragiczny ułamek. Chyba jest to spowodowane [php:1:6d39a1b4af]$pstrona = $show/$max-1;
$tstrona = $show/$max;
$nstrona = $show/$max+1;
[/php:1:6d39a1b4af]
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.