Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie pliku
Forum PHP.pl > Forum > PHP
Ive
Jak posortować plik spis.txt według liter od A do Z?

(Szukałem w search'u ale nic ine mogłem znaleźć :/ )
DeyV
plik do tablicy ([manual:7c708c5a92]file[/manual:7c708c5a92]) a następnie [manual:7c708c5a92]natsort [/manual:7c708c5a92]
Ive
zrobiłem tak:
[php:1:bccf4bf5b8]<?php

$plik = file("kody/$litera/spis.txt");
natsort($plik);
$all = count($plik);
for($i=0; $i<$all;$i++) {

echo"<center>";
echo("$plik[$i]");

}
echo("<br><br><a href=java script:history.back(1)>Powrót</a>");
echo"</center>";

?>[/php:1:bccf4bf5b8]
ale mi nie sortuje :/
FiDO
CO to znaczy nie sortuje??
Co Ci sie wyswietla?
Pozatym otwierasz w petli <center> a nigdzie go nie zamykasz...
Ive
Cytat
CO to znaczy nie sortuje??
Co Ci sie wyswietla?
Pozatym otwierasz w petli <center> a nigdzie go nie zamykasz...

to znaczy że nie sortuje :/
a <center> zamknąłem tylko za pętlą bo chcaiłem żeby link powrotny był jeszcze wycentrowany smile.gif

a efekt skryptu macie tu :/
skrypt sortuje mi według daty dodania (najstarszy na samej górze :/
(gdyby się ktoś nie dopatrzył to Game jest na samym dole a powinno być na samej górze - pierwsze )
DeyV
pokaz strukture pliku z danymi
Ive
ZAPISUJE TO W TAKIEJ POSTACI:
Kod
<a href="?site=$nazwa_plik&lit=$lit">$nazwa_spis</a><br>n
DeyV
ojj...
zastanó sie, jak ma działać taki skrypt...
Pobiera ona każdą linię z twojego pliku, i sprawdza 1 znak, następnie kolejny itd. sortując tablicę. Czy jednak zauważyłeś, co znajdzie tam nasz skrypt?
fragment <a href="?site=$, i wzglądem niego będzie sortować....
Stąd musisz zrobić inaczej.
Zastanów sie dokłądnie jakie dane musisz miec w tym pliku, oraz względem jakich będzie sortowanie, i przygotuj konstrukcję pliku łatwiejszą do opracowywania danych.
Ive
zrobiłem tak:
- zapisuje do pliku spis.txt:
Kod
Nazwa_gry||Nazwa_pliku||Litera

czyli np.
Kod
GTA||gta||g
;
- i mam taki kod do odczytywania:
[php:1:1fce3eeccb]<?php

$plik = file("kody/$litera/spis.txt");
natsort($plik);
$all = count($plik);
for($i=0; $i<$all;$i++) {

explode("||",$plik[$i]);
echo"<center>";
echo"<a href="?site=$plik[1]&lit=$plik[2]">$plik[0]</a>";

}
echo"<br><br><a href=java script:history.back(1)>Powrót</a>";
echo"</center>";

?>[/php:1:1fce3eeccb]
ale nie wiem czemu wyświetla mi tylko jedną linjkę a nie całość (Tutaj jest skrypt: www.evildb.host.sk/emunation-tips/spis.php )

[edit]
sorx już rozwiązałem problem!
Ive
a jednak nie :/ teraz wyskoczył mi ionny problem:/
mam kod[php:1:dd65fbabb4]<?php
$plik = file("kody/$litera/spis.txt");
natsort($plik);
$all = count($plik);
echo"<center>";
for($i=0; $i<$all;$i++) {

$plik = explode("||",$plik[$i]);
echo"<a href="?site=$plik[1]&lit=$plik[2]">$plik[0]</a>";

}
echo"<br><br><a href=java script:history.back(1)>Powrót</a>";
echo"</center>";
?>[/php:1:dd65fbabb4]
i niby wszystko jest dobrze ale coś jednak jest źle :/
zamiast wypisywać mi wszystkie tutuły on wypisuje mi pierwszy tytuł dobrze, drugi już jako nazwa pliku, a trzeciego już nie ma :/

EDIT
Sorx teraz już definityuwnie jest wszystko ok :/
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.