Forum » Šola » PHP problem
PHP problem
Črt9 ::
Pozdravljeni, za nalogo pri phpju moramo v zadnjem sklopu nalog vrednosti iz tekstovne datoteke klicati v php datoteko, od tam pa izračunati povprečno, minimalno vrednost... A mi lahko kdo pomaga? Naredil sem praktično vse, razen zadnje naloge, ki mi nikakor ne gre v glavo.
Moja koda je to:
http://prntscr.com/dw0kk5
Naloga pa zahteva to:
http://prntscr.com/dw0j7o
Moja koda je to:
http://prntscr.com/dw0kk5
Naloga pa zahteva to:
http://prntscr.com/dw0j7o
Črt9 ::
To pa je vse, kar je v tekstovni datoteki:
1.1.2010, 1
2.1.2010, -4
3.1.2010, -7
4.1.2010, -2
5.1.2010, 0
6.1.2010, 1
7.1.2010, -6
8.1.2010, -9
9.1.2010, -5
10.1.2010, -2
1.1.2010, 1
2.1.2010, -4
3.1.2010, -7
4.1.2010, -2
5.1.2010, 0
6.1.2010, 1
7.1.2010, -6
8.1.2010, -9
9.1.2010, -5
10.1.2010, -2
petrusko ::
Psevdo koda:
Odpreš datoteko in bereš vrstico po vrstico (while).
Vrstico splitneš po vejici (dobiš array) (split)
Potem pa iščeš min oz max vrednost; hkrati ko najdeš min oz max vrednost si zapomniš tudi datum
Na koncu vse tudi izpišeš
$min = 0;
$minDate = null;
$max = 0;
$maxDate = null;
while() {
$data = $line.split(',');
if($min > $data[1]) {
$min = $data[1];
$minDate = $data[0];
}
if($max < $data[1]) {
$max = $data[1];
$maxDate = $data[0];
}
}
Odpreš datoteko in bereš vrstico po vrstico (while).
Vrstico splitneš po vejici (dobiš array) (split)
Potem pa iščeš min oz max vrednost; hkrati ko najdeš min oz max vrednost si zapomniš tudi datum
Na koncu vse tudi izpišeš
$min = 0;
$minDate = null;
$max = 0;
$maxDate = null;
while() {
$data = $line.split(',');
if($min > $data[1]) {
$min = $data[1];
$minDate = $data[0];
}
if($max < $data[1]) {
$max = $data[1];
$maxDate = $data[0];
}
}
jl ::
Pozdravljeni,
imam sledeči problem, rad bi preko spletne strani zagnal neko skripto na remote strežniku in prejel na spletno stran output dogajanja izvajanja skripte. Stvar mi deluje v tej meri, da se skripta izvede in dobim rezultat po koncu izvajanja, sam pa bi želel, da v realnem času spremljam dogajanje na strežniku. Trenutno imam narejeno takole:
function submitTEST(){
$.ajax({
type: 'POST',
data: ({TEST : '1' }),
url: './query.php',
success: function(data) {
$("#TestDIV").append(data);
}
});
return false;
}
query.php:
if($_POST['PAT']=='1'){
$connection = ssh2_connect('x.x.x.x', 22);
ssh2_auth_password($connection, 'user', 'xxxx');
$stream = ssh2_exec($connection, 'perl test.pl');
stream_set_blocking($stream, true);
echo stream_get_contents($stream);
}
Za kakršnokoli pomoč/hint se že vnaprej zahvaljujem.
lp
imam sledeči problem, rad bi preko spletne strani zagnal neko skripto na remote strežniku in prejel na spletno stran output dogajanja izvajanja skripte. Stvar mi deluje v tej meri, da se skripta izvede in dobim rezultat po koncu izvajanja, sam pa bi želel, da v realnem času spremljam dogajanje na strežniku. Trenutno imam narejeno takole:
function submitTEST(){
$.ajax({
type: 'POST',
data: ({TEST : '1' }),
url: './query.php',
success: function(data) {
$("#TestDIV").append(data);
}
});
return false;
}
query.php:
if($_POST['PAT']=='1'){
$connection = ssh2_connect('x.x.x.x', 22);
ssh2_auth_password($connection, 'user', 'xxxx');
$stream = ssh2_exec($connection, 'perl test.pl');
stream_set_blocking($stream, true);
echo stream_get_contents($stream);
}
Za kakršnokoli pomoč/hint se že vnaprej zahvaljujem.
lp
jl ::
OK, kot berem moram verjetno gledati za websocket, Comet naj bi bila starejša verzija long pull serverja. Imam morda kdo kak simple example, kako se naredi?
Zgodovina sprememb…
- spremenil: jl ()
DeeJay ::
Kokr si že sam pogruntu je to izvedljivo z websocket. Če pa ne rabiš 100% realtime podatkov, pa lahko vsako sekundo osvežuješ ajax z setTimeout.
jl ::
Sem probal z setTimeout, vendar v tem primeru ponovno kliče php skripto in le-ta ponovno odpre ssh sejo in izvede skripto. Drug problem je pa tudi asinhrono branje streama, ki mi ne deluje:
stream_set_blocking($stream, false);
do {
$line = fgets($stream);
echo $line."\n";
if ($line === false) {
unset($connection);
break;
}
} while(true);
stream_set_blocking($stream, false);
do {
$line = fgets($stream);
echo $line."\n";
if ($line === false) {
unset($connection);
break;
}
} while(true);
technolog ::
Ne kompliciraj z websocketi.
Poglej si EventSource (SSE), ni tezka stvar. Ne bo delala v IE in Edge.
Poglej si EventSource (SSE), ni tezka stvar. Ne bo delala v IE in Edge.
technolog ::
Edino pazi, ker ti bo vsak povezan user pojedel en proces. Uporabi kombinacijo php-fpm in nginx.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Kontakt obrazecOddelek: Izdelava spletišč | 2059 (1904) | betmen |
» | F1 2010 by Codemasters (strani: 1 2 3 4 )Oddelek: Igre | 30864 (23234) | Jst |
» | SQL problemOddelek: Programiranje | 1338 (1185) | JanezH |
» | Athlon II X3 425 2.7GHz @ Phenom II X4 3,3GHzOddelek: Navijanje | 1670 (1253) | ferdo |
» | Veljavnost garancije laptopa ob piratskem OS-ju.Oddelek: Operacijski sistemi | 1667 (1344) | GoldRakun |