Létrehozása Eseményfigyelő PHP váró XML-tartalom

szavazat
18

Meg kell, hogy hozzon létre egy eseményt hallgató. Én egy kezdő, így legyen kedves :)

Alapvetően én vagyok page1.php (php file); Szeretnék belsejében egy hurok néznem page2.xml (xml fájl) néhány információt kell kapnia egy bizonyos ponton. Vagy ellenőrizze, hogy minden alkalommal, vagy várjon 5 percenként, vagy úgy, hogy ha valamilyen információt nem kapott ott. Egyikük működik nekem.

Ha nincs információ érkezett néhány perc után, akkor szeretnék újra futni a hurok (amíg nem érkezik), egyébként haladni, és tenni valamit az én újonnan kapott információt. Ez a rész már nem probléma, csak az esemény hallgató is. Nem találtam a funkciót kéne használni bárhol. :( én csak azt kell ellenőrizni, és letölteni a tartalmát XML fájl minden olyan gyakran.

Nem vagyok biztos benne, hogyan kell menni erről, ha van nem csak egy függvény, amely ezt teszi, de nem találtam sokat, ha kerestem „esemény hallgató php”.

Minden segítséget szívesen vennénk: hivatkozás oktató / minta kód / akár csak mondani, milyen kulcsszavakra kellene lennem keres, vagy mit kell tanulni, az első, hogy erre a célra.

Kösz!

A kérdést 21/12/2011 23:17
felhasználó
Más nyelveken...                            


3 válasz

szavazat
1

Nos, először is meg kell érteni a terminológiát használ. PHP nem eseményvezérelt nyelv, ez egy kérés-vezérelt nyelvet. A kérés érkezik be a web-szerver, PHP feldolgoz, és a választ visszaküldjük a kérelmezőnek. Sehol sem vannak események váltották, hogy képes feldolgozni vagy kezelni. Akkor végre a saját „esemény rendszer”, de végső soron ez sokkal több munkát, mint amit a use-case jár.

A legjobb az, valószínűleg felhasználásával AJAX és folyamatosan készíti kéréseket PHP script, amíg vissza az adatokat, amit keres. Végül meg kell tanulni a XMLHttpRequestJavaScript objektumot. Miután megérteni, hogyan lehet aszinkron kérések felhasználásával JavaScript akkor nézd meg a setInterval()módszert, hogyan lehet ismételten olyan kérelmet.

Miután többször is, hogy az aszinkron kérések kell egy viszonylag egyszerű folyamat létrehozása egy weboldal, ahol lehet kiváltani az AJAX kéréseket lehessen küldeni.


Nincs szükség a hurok a PHP kódot. A hurok hatékonyan történik a másik végén. Itt egy szöveges munkafolyamatot, hogy esetleg követik:

  1. Ugrás egy weboldal célja, hogy jelenítsék meg AJAX hívások és kiváltó őket.
  2. Tedd aszinkron kérést a PHP script.
  3. Belül a PHP script megnyitja az XML fájlt, és ellenőrizze a szükséges tartalmat.
  4. Visszatérés a válasz formájában JSON objektum. Az egyik válasz jelentheti az adatokat nem lett frissítve, a másik válasz: az adatok frissítve.
  5. Elemezni a válasz, ha az adatokat nem frissítette lépéstől (2). Ha az adatok frissítve ugorjon a (6).
  6. A kijelző egy ünnepi üdvözlő, hogy az adatok frissítve vagy egy figyelmeztetést, hogy mi még mindig várja az adatokat frissíteni kell. Talán akkor már az a próbálkozások száma is, ki az oldalra.
Válaszolt 21/12/2011 23:57
a forrás felhasználó

szavazat
0

Tettem ilyet ír egy postaláda értelmező PHP. Te vagy a legjobb megoldás az, hogy:

Kód page1.phpahol csak meg kell csinálni 2 dolog: olvasni XML page2.xml, és ha van valami „új” csak végrehajtja az adat-elemzés kódot.

Beállítás a Cron feladat (ha linux alatt), hogy végre minden 5 perc múlva (Cron parancs valami ilyesmi: php /path/to/page1.php). Ugyanígy, ha a Windows akkor beállít egy ütemezett feladatot, és végre ugyanazt a parancsot. Legyen tudatában annak, hogy a teljes elérési utat a PHP kell lennie PATHkörnyezeti változót.

Válaszolt 22/12/2011 00:20
a forrás felhasználó

szavazat
1

Én a következő:

Automatikusan menti az adatbázisba minden alkalommal valami új jött.

Aztán futott egy php hurok, néhány percenként ellenőrizzük, hogy van-e valami új az adatbázis, amely illeszkedik a paramétereket az új esemény (beleértve, hogy happenned időkereten belül az elmúlt néhány percben). Régebben flush();, majd sleep(120);a hurok, hogy a hurok tartani fut néhány percenként, amíg az új info jött ebben az esetben ez lesz break();vagy die();.

Válaszolt 03/01/2012 23:57
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more