![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 2.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam !!
Jezeli plik mam odzielony separatorem |~| i chce pobrac ostatnia czesc z linii... Jest to liczba tak dla sprostowania. Chcialbym by skrypt pobral z pliku najwieksza i dodal o jeden...Wiem jak dodac o jeden lecz nie wiem jak pobrac najwieksza liczbe z pliku i wtedy dodac. Liczba ta pochodzi z ostatniego ciagu... Przyklad: Kod costam3|~|blabla|~|3//chodzi o ta liczbe|~|
costam2|~|blabla|~|2|~| costam1|~|blabla|~|1|~| W przypadku takiego schematu skrypt podczas zapisu odzielilby i pobral najwieksza liczbe z pliku tj. "3" nastepnie dodal o jeden z czego nowa wiadomosc miala by liczbe "4" itd.... Kombinuje ale caly czas wychodzi jeden ![]() |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 10.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Wczytaj plik do tablicy, posortuj wzgledem ostatniej kolumny i pobierz odpowiedni element.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 2.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
O to bedzie dobre...dzieki
![]() |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 2.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Jakos nie moge sobie poradzic
![]() Najpierw wczytuje plik. Nastepnie rozdzielam pomiedzy seperator |~| i powstaje mi tablica wiem ze musze uzyc funcji array_multisort() lub usort() Kod $dana = file("includes/dat/news.dat");
for($q=0; $q<count($dana); $q++){ $lp = explode("|~|", $dana[$q]); //i teraz wlasnie nie wiem jak zastosowac funkcje ktora by sortowala $lp[6]?? echo $lp[6]."|"; |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 10.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Wyswietli największą liczbę:
[php:1:c33f29bbcb] <?php $tab = file( 'dat.dat' ); foreach ( $tab as $row ) { $row = explode( "|~|", $row ); $tab1[] = $row[2]; } arsort( $tab1 ); echo reset( $tab1 ); ?> [/php:1:c33f29bbcb] |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 2.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dziala
![]() Pozdrawiam |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 2.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam jeszcze takie jedno pytanko.....jak wyswietlac ta wartosc w innych miejscach....<? echo $tab1 ?>nie wystarcza wyskakuje array....
Teraz musze tylko poprostu dodac jeden do zmiennej "$lp" do zapisu....i tak przynajmniej nigdy nie bedzie dwoch liczb takich samych.... lecz dodac sie nie da bo nie wiem jak....[php:1:a5a739230f]<?php //czesc odpowidzialna za nadanie liczby porzadkowiej $tab = file('includes/dat/news.dat'); foreach ($tab as $row) { $row = explode("|~|", $row); $lp[] = $row[6]; } arsort($lp); reset ($lp); //zapis do pliku $fp = fopen("includes/dat/news.dat", "r"); $stareDane = fread($fp, filesize("includes/dat/news.dat")); fclose($fp); $data = date("d.m.Y H:i:s"); $autor = $_SESSION["log"]; $tresc = str_replace("n", "<br>", $tresc); $noweDane="$tytul|~|$tresc|~|$data|~|$autor|~|$dzial|~||~|$lp//tu musi byc dodawany o jeden|~|n"; $noweDane .= $stareDane; $fp = fopen("includes/dat/news.dat", "w"); fputs($fp, $noweDane); fclose($fp); ?>[/php:1:a5a739230f] Ma ktos jakis pomysl?? |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 10.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
Mozna tak:
[php:1:22f1b41e14]<?php //czesc odpowidzialna za nadanie liczby porzadkowiej $tab = file( 'includes/dat/news.dat' ); foreach ( $tab as $row ) { $row = explode( "|~|", trim( $row ) ); $lp[] = $row[6]; } arsort( $lp ); //zapis do pliku $lp_max = reset( $lp ) + 1; $data = time( ); $autor = $_SESSION["log"]; $tresc = str_replace( "n", "<br />", $tresc ); $noweDane = "$tytul|~|$tresc|~|$data|~|$autor|~|$dzial|~||~|$lp_maxn"; $plik = fopen( 'includes/dat/news.dat', 'a+' ); flock( $plik, 2 ); fputs( $plik, "$noweDane" ); flock( $plik, 3 ); fclose( $plik ); ?>[/php:1:22f1b41e14] Kilka uwag. Date przechowuj niesformatowaną, lepiej to robić dopiero przy wyświetlaniu wyniku na stronie. Stosowanie $lp nie jest konieczne, zamiast niej możesz równie dobrze stosować numer linii w pliku, jeżeli zastosujesz tryb "a+", czyli kolejna linia jest dopisywana na końcu pliku. Dodatkowo dzięki temu trybowi otwarcia pliku dwukrotnie (tak jak to robiłeś) jet zbyteczne. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 2.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dzieki za porady....ustosunkuje sie do nich
![]() |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 117 Pomógł: 0 Dołączył: 2.05.2003 Ostrzeżenie: (0%) ![]() ![]() |
ODnosnie formatowania daty......mam to robic tak
![]() [php:1:66edc1983f]<?php date("d.m.Y H:i:s", time($info[2])) ?>[/php:1:66edc1983f] Bo jezeli tak to mi to ie dziala.....wyswitla date i godzine ale nie ta co jest w pliku zapisana ![]() Pewnie robie cos zle wiec prosze o nakierowanie. UPDATE: Chyba udalo mi sie....powinno byc tak ![]() [php:1:66edc1983f]<?php date("d.m.Y H:i:s", $info[2]) ?>[/php:1:66edc1983f] |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 56 Pomógł: 0 Dołączył: 10.03.2003 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
[php:1:db0eab1e73]<?php
date("d.m.Y H:i:s", $info[2]) ?>[/php:1:db0eab1e73] |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 05:25 |