![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Witam, chciałem zapytać, czy w PHP istnieje możliwość zapisania lini odczytanego pliku w kolejności losowej.
Np, gdy mamy plik lista.txt: Kod a b c Po wykonaniu skryptu wygląda on np tak: Kod b
c a Ten post edytował Cysiaczek 14.02.2008, 15:47:08
Powód edycji: dodalem tag (cysiaczek)
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 566 Pomógł: 18 Dołączył: 23.08.2003 Skąd: Łomża Ostrzeżenie: (0%) ![]() ![]() |
-------------------- *Note: No animals were killed durning the construction of this post.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Napisałem coś takiego:
Kod <?php $lines = file('playlista.lst'); shuffle($lines); foreach ($lines as $line_num => $line) { echo "$line"; } ?> Wszystko ładnie działa, ale pojawił się mały problem. Na końcu zawsze pojawia się jedna pusta linia kodu. Jak usunąć ostatnią linie przez zapisaniem ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Zdejmij element z końca tablicy http://php.net.pl/manual/pl/ref.array.php
-------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Po zdjęciu elementu z tablicy znika jeden plik mp3, a pusta linia kodu nadal pozostaje.
Dodam, że w pliku playlista.lst w momencie umieszczenia go w tablicy nie ma żadnej wolnej linii. Czy można usunąć tą linie w momencie zapisu do pliku ![]() Wiem, że można zapisać x lini do pliku, ale gdy dodam nowe mp3, będzie to niewygodne. Jak sprawdzić, ile lini ma tablica ![]() Wtedy zapisałbym o jedną linie mniej ![]() Ten post edytował inomushis 14.02.2008, 15:58:08 |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Po zdjęciu elementu z tablicy znika jeden plik mp3, a pusta linia kodu nadal pozostaje. Dodam, że w pliku playlista.lst w momencie umieszczenia go w tablicy nie ma żadnej wolnej linii. No bo pewnie zdejmujesz w złym momencie... zobacz jak wygląda tablica zaraz po pobraniu z pliku... pewnie jest jedna pusta linia na końcu pliku... Ten post edytował nowotny 14.02.2008, 16:01:41 |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Na końcu nie ma żadnej wolnej linii.
Nawet gdyby była, to przecież używam Kod shuffle($lines); i nie pozostałaby na końcu. Wygląda to tak, jakby ta linia powstawała gdzieś poza tablicą. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Eee... coś ściemniasz...
![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
oto kod
Kod <?php $lines = file('playlista.lst'); shuffle($lines); foreach ($lines as $line_num => $line) { echo "$line"; } ?> A rezultat jest taki: http://shells.pl/klnet/sort.php Jak widać w kodzie źródłowym - na końcu pozostaje wolna linia. Użycie array_pop - nic nie daje Ten post edytował inomushis 14.02.2008, 16:19:02 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ja powiedziałem pokaż tablice... czyli print_r($lines); przed i po shufflu...
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Hmm... no tak... "problemem" tu jest znak nowej linii importowany z pliku... każdy element w tablicy go zawiera przez co ostatni element też go ma...
Możesz użyć trim" title="Zobacz w manualu PHP" target="_manual żeby wywalić te znaki i potem w pętli dodawać je samemu sprawdzając czy dany element nie jest ostatnim (wtedy nie dodawać)... Ten post edytował nowotny 14.02.2008, 16:33:03 |
|
|
![]()
Post
#14
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
@nowotny, a nie prościej i szybciej trimnąć tylko ostatni element tablicy?
![]() -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Gdybym to ja wiedział, jak to napisac
![]() |
|
|
![]()
Post
#17
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 712 Pomógł: 23 Dołączył: 27.10.2003 Skąd: z kontowni Ostrzeżenie: (0%) ![]() ![]() |
Jasne? Mam nadzieję. -------------------- "Coś się kończy, coś się zaczyna." Andrzej Sapkowski
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jasne, dzięki.
Jak teraz, co 4 linijki dopisać "mp3/reklama.mp3" ![]() |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 875 Pomógł: 122 Dołączył: 2.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 12 Pomógł: 0 Dołączył: 12.02.2008 Ostrzeżenie: (0%) ![]() ![]() |
Działa.
Dzięki wszystkim za pomoc. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:51 |