Pereiti prie turinio

Rekomenduojami pranešimai

Sveiki,

Norėčiau sužinoti kodą. Pvz. kad kai užsikrauna failas laikas.php jame $minutes būtų priskirtos sakičiui 15, o $sekundes skaičiui 00:

 

<?php
$minutes = 15;
$sekundes = 00;
?>

 

Jei išnaujo ateini arba tiesiog atnaujini laikas.php failą rašytų jau taip:

 

<?php
$minutes = 14;
$sekundes = 59;
?>

 

Ir taip vis mažėtų iki tol kol $minutės ir $sekundės būtų 00.

Redagavo zoltonas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

reik irasinet duomenis i faila arba duombaze ir per kiekviena uzejima sumazint

 

Tai aš ir žadu įrašyti į duombazę, bet kaip padaryti, kad nerašytų išvien to 15 ir 00. Kaip padaryti, kad rašytu vis mažesnius skaičius?

Redagavo zoltonas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai aš ir žadu įrašyti į duombazę, bet kaip padaryti, kad nerašytų išvien to 15 ir 00. Kaip padaryti, kad ra6yt7 vis kitus?

Na tai atverčiant imi iš duombazės (arba tekstinio failo, sausainėlio, sesijos ir t.t.), sumažini, įrašai atgal.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

uzejus i nuoroda scriptas istraukia is duombazes laika, ji sumazina ir ikelia sumazinta laika i duombaze su UPDATE funkcija. o kada atvaizduot: pries atnaujinima ar po atnaujinimo cia jau tau spresti.

 

Kažkaip kvailai pasijaučiau, kažką galvojau daryti su while funkcija, o juk galima taip paprastai... :D Kažin kodėl pačiam to nepavyko suprast :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

scriptas tik atlieka veiksmus, bet jame nieko neissaugosi ;)

Tuomet atlik išsaugojimo veiksmą ir išsaugosi. Tarkime, skripto pavadinimas yra laikas.php ir nurodai tokias argumentų reikšmes:

$minutes = 15;
$sekundes = 00;

Norint, kad skriptas sulig kiekvienu užkrovimu jas mažintų, tereikia laikas.php pažymėti kaip perrašomą failą, o tada atlikti argumentų reikšmės gavimo veiksmus, o po to jau paprasta matematika. Žinoma, tai kur kas patogiau ir tikslingiau daryti, dirbant su duomenų baze, bet įmanoma ir programuojant patį skriptą. :) Štai pavyzdys:

<?php

$minutes = 15;
$sekundes = 00;

$turinys = file_get_contents('laikas.php');
preg_replace('/minutes = ([0-9]+);/ie','"".eval(\'$min = "$1";\').""',$turinys);
preg_replace('/sekundes = ([0-9]+);/ie','"".eval(\'$sek = "$1";\').""',$turinys);
$all_sek = $min*60 + $sek - 1;
$sek_new = $all_sek % 60;
$min_new = ($all_sek - $sek_new) / 60;

echo "$min ::: $sek";

if ($sek_new > 0 || $min_new > 0) {
$file = fopen('laikas.php','w');
$turinys = str_replace('sekundes = '.$sek,'sekundes = '.$sek_new,str_replace('minutes = '.$min,'minutes = '.$min_new,$turinys));
fwrite($file,$turinys);
fclose($file);
}

if ($sek == 1 && $min == 0) {
$turinys = str_replace('sekundes = 1','sekundes = 0',$turinys);
$file = fopen('laikas.php','w');
fwrite($file,$turinys);
fclose($file);
}

?>

Redagavo topsas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

<?php

$minutes = 15;
$sekundes = 00;

$turinys = file_get_contents('laikas.php');
preg_replace('/minutes = ([0-9]+);/ie','"".eval(\'$min = "$1";\').""',$turinys);
preg_replace('/sekundes = ([0-9]+);/ie','"".eval(\'$sek = "$1";\').""',$turinys);
$all_sek = $min*60 + $sek - 1;
$sek_new = $all_sek % 60;
$min_new = ($all_sek - $sek_new) / 60;

echo "$min ::: $sek";

if ($sek_new > 0 || $min_new > 0) {
$file = fopen('laikas.php','w');
$turinys = str_replace('sekundes = '.$sek,'sekundes = '.$sek_new,str_replace('minutes = '.$min,'minutes = '.$min_new,$turinys));
fwrite($file,$turinys);
fclose($file);
}

if ($sek == 1 && $min == 0) {
$turinys = str_replace('sekundes = 1','sekundes = 0',$turinys);
$file = fopen('laikas.php','w');
fwrite($file,$turinys);
fclose($file);
}

?>

 

Polimorfinis scriptas :D

Nuoroda į pranešimą
Dalintis kituose puslapiuose

nu cia tokie irodymai tik del programavimo sugebejimu pademonstravimo.. nera tikslo apsunkinti sau padeti, jei irasymas i atskira ar ta pati faila uztrunka tiek pat. o kaip ir minejau, scriptas nesugeba atlikti temos autoriaus reikalavimu. tiesiog tavo atveju failas kuriame yra scriptas atlieka scripto bei kintamuju talpinimo funkcijas, o as kalbejau apie temos autoriaus minti apie while funkcija. zodziu zaismas, daugiau nieko

Redagavo Fantasya
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nepaprasčiau būtų sesijoje ar šiaip kur išsaugoti laiką po 15-os minučių ir tada:

$current = time()
if(!isset($_SESSION['goal']){
//for firsttimers
$goal = time() + (15 * 60);
$_SESSION['goal'] = $goal
}else{
//if visiting again
$goal = $_SESSION['goal']
}
$sekundes = $goal - $current;
//gauname minutes
$minutes = (int) ($sekundes/60);//man rods taip PHP verčiamas float į integerį??
$sekundes = $sekundes - $minutes*60;

Redagavo nagisa
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nepaprasčiau būtų sesijoje ar šiaip kur išsaugoti laiką po 15-os minučių ir tada:

$current = time()
if(!isset($_SESSION['goal']){
//for firsttimers
$goal = time() + (15 * 60);
$_SESSION['goal'] = $goal
}else{
//if visiting again
$goal = $_SESSION['goal']
}
$sekundes = $goal - $current;
//gauname minutes
$minutes = (int) ($sekundes/60);//man rods taip PHP verčiamas float į integerį??
$sekundes = $sekundes - $minutes*60;

 

Kam tu ta dabartini laika pirma pradeda, paskui atimi? O dar idomiau, kaip tau per kiekviena apsilankima mazes laikas po 1s? nuo pirmo apsilankimo praejus 24h tau numus 86400 sekundes

 

Viso pasekoje, pagal tavo pavizdy turetu atrodyti taip scriptas

 

session_id('timeinfo'); //Cia jei reikia pritaikyti visiems vartotojams, arba uzkomentuojam, jei kiekvienam atskirai
session_start();

if(!isset($_SESSION['timeinfo']))
   $_SESSION['timeinfo'] = 15*60;

$_SESSION['timeinfo']--;

$minutes = round($_SESSION['timeinfo']/60, PHP_ROUND_HALF_DOWN);
$sekundes = $_SESSION['timeinfo'] - $minutes*60;

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...