Ahojte, riešim takýto problém. Mám PHP kód. Ako používateľ zadám požiadavku hlasom, prípadne ju napíšem a následne sa zapíše do .txt súboru ako text. Mikroprocesor si to prečíta a vykoná akciu. Je tu ale takýto problém. Chcem aby sa súbor dal otvoriť iba raz a následne sa buď už nedal otvoriť, alebo sa zmazal jeho obsah.
Jeho obsah mením cez php kód cez funkciu put contents.
Príklad: Mikroprocesor si prečíta, že chcem zapnúť vonkajšie osvetlenie, prečíta si to opäť za pár sekúnd, nič sa nezmení, lebo požiadavka je stále tá istá a výstup je stále aktivovaný.
Predstavme si ale tlmené PWM osvetlenie, ktoré navýšim o 10% a chcem to iba raz. Ako následne zabrániť prečítaniu súboru, aby mi do nekonečna mikroprocesor nepridával hodnoty na výstupe na základe prečítania požiadavky, aj keď som ju nezmenil na stále je tam zapísaná? Nejaké tipy? Dá sa to riešiť cez .htaccess alebo apache nastavenia, prípadne niečo v php? Ako najvhodnejšie by ste podobnú vec riešili vy?
Fórum › PHP
Riešenie pre otvorenie txt súboru 1x od updatu
To je ten problém, že mikrokontróler neprečíta PHP. Skúšal som to podobne a mal som výpis txt súboru v php súbore a malo sa mi vrátiť: Zapni LED 1 a vrátilo sa mi: 12dsf84 Takže to nefunguje. Jedná sa o NodeMCU.
Ja bych to resil pres databazi. Souborove to muzes resit stejne.
zapis.php?data='rozsvit'
precti.php - ktere soucasne smaze z db ten text
zp.php?akce=zapis&data='rozsvit'
zp.php?akce=precti
Na serveru se da php spoustet tusim pres 'php precti.php' (nebo 'http precti.php' nebo tak nejak se to tam dela).
Ale slo by to delat tak, ze ke kazdemu pozadavku pridas casove razitko. Funkce si pak precte jen radky v urcitem intervalu, ostatni ignoruje. A pak ti bezi na serveru jeste proces, ktery smaze radky se starsim razitkem. Ale prijde mi to na houbec, kdyz to muze delat zrovna ten php program.
No, a pak muzes v tom php predat data primo tomu dalsimu programu, neni treba to zapisovat. Nejdriv si overis, zda je to platny prikaz, ale.
<?php
$data = 'rozni';
shell_exec('jinyprogram.exe -data='.$data); // tady existuje asi 5 prikazu pro spousteni z command-line, google
//http://php.net/manual/en/function.exec.php
//exec();
//system() - Execute an external program and display the output
//passthru() - Execute an external program and display raw output
//escapeshellcmd() - Escape shell metacharacters
//pcntl_exec()
?>
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Riesenie try a catch pre prijimanie dat cez UDP — založil Tayson
Otvorenie suboru z VS. — založil zonda
Otvorenie súboru — založil tito100
Otvorenie suboru s diakritikou v nazve — založil entity
Otvorenie súboru cez GUI — založil michal
Moderátoři diskuze