» »

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

Č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

xtpwn ::

SPTŠ pa te fore za oceno 5 a?

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];
}

}

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

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);

technolog ::

Ne kompliciraj z websocketi.

Poglej si EventSource (SSE), ni tezka stvar. Ne bo delala v IE in Edge.

jl ::

@tehnolog; hvala za hint. Naredil sem z SSE in dela odlično.

technolog ::

Edino pazi, ker ti bo vsak povezan user pojedel en proces. Uporabi kombinacijo php-fpm in nginx.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kontakt obrazec

Oddelek: Izdelava spletišč
62059 (1904) betmen
»

F1 2010 by Codemasters (strani: 1 2 3 4 )

Oddelek: Igre
18330864 (23234) Jst
»

SQL problem

Oddelek: Programiranje
111338 (1185) JanezH
»

Athlon II X3 425 2.7GHz @ Phenom II X4 3,3GHz

Oddelek: Navijanje
191670 (1253) ferdo
»

Veljavnost garancije laptopa ob piratskem OS-ju.

Oddelek: Operacijski sistemi
131667 (1344) GoldRakun

Več podobnih tem