Astăzi aș dori să vorbesc despre cum puteți lucra cu ușurință cu ICQ în limba PHP.
Acest lucru este uneori foarte util. Folosind imaginația ta, poți scrie o mulțime de utilitate pentru site-ul tău. De exemplu, pentru a gestiona un server sau un site prin ICQ. Puteți trimite pur și simplu comenzi pre-programate, de exemplu, deconectați unele bunuri de la magazinul online, prin icq și primiți în schimb rapoarte de lucru.
Luați în considerare interacțiunea dintre PHP și ICQ pe un exemplu real. Să încercăm să scriem un program de cribluri pe ICQ. După ce ați dezasamblat-o, o puteți remodela cu ușurință pentru a efectua orice sarcini.
Esența programului va fi următoarea:
- Completați fișierul server .txt cu o listă de întrebări și răspunsuri într-un format predefinit (de exemplu, împărțind întrebarea răspunsului de la un separator)
- Programul va încărca acest fișier într-o matrice
- Atunci când trimiteți comanda "bot" (să o numim așa), programul ar trebui să ne trimită o listă de întrebări numerotate
- Când trimiți un număr de întrebare, trebuie să răspundem
În general, trebuie să fie ceva de genul asta.
Și așa, să începem!
Acum ne vom gândi la sintaxa unui fișier text cu întrebări / răspunsuri.
Cea mai simplă opțiune pentru aceasta este de a scrie în fiecare rând pe întrebare, apoi delimitatorul (de exemplu, triple colon "."), Și apoi răspunsul. Avem întrebarea (răspunsul) în linie. Am pus fișierul de testare vopros.txt.
Totul este clar. Acum ne vom ocupa de programul în sine.
În arhiva pe care ați descărcat-o de pe site, puteți găsi fișierul bot.php. Acesta este un caz de testare pentru bot. Are funcția principală a acestei clase. La bază și scrie botul nostru. Eliminați toate inutile, adăugați lipsă. Ca urmare, am primit următorul șablon:
Acest script stabilește mai întâi unele setări ale serverului (max_execution_time - runtime-ul este setat la infinit și error_reporting - toate erorile sunt activate).
Apoi trebuie să vă înregistrați numărul ICQ pentru bot. Acestea sunt indicate în liniile 5 și 6. De asemenea, pentru a controla botul, trebuie să specificați numărul administratorului bot. Echipe privilegiate îi vor fi disponibile. Apoi ne conectam clasa si creem un obiect WebIcqPro. Vom lucra cu el în viitor.
Pornim ciclul nesfârșit (în timp ce (1)). Avem nevoie de ea pentru muncă permanentă. Dacă trebuie să completați, faceți acest lucru cu comanda die ().
Metoda readMessage () returnează o matrice specială cu toate informațiile despre mesaje. La fiecare 2 secunde rulează și sunt verificate mesaje noi.
Mai mult, codificarea mesajului este verificată și, dacă este necesar, este recodificată.
Acum treceți la procesarea fișierului cu întrebări / răspunsuri.
Imediat după stabilirea numărului administratorului, introduceți următorul cod:
Nu este complicat, dar încă pe scurt voi descrie ce face.
Dacă există fișier $, programul o deschide. Începe să citească după linie și să introducă informații în întrebările $ matrice asociative. Din ea în viitor va lua toate informațiile.
Acum începem să scriem procesarea comenzilor (acest loc este pe linia 48).
Esența va fi cea mai simplă. În cazul declarațiilor, vom verifica dacă comanda a venit și, în funcție de aceasta, vom efectua diferite acțiuni.
Scrie prima prelucrare:
Nici măcar nu am nevoie de explicații aici. În variabila $ messaga, un mesaj este primit de la icq. Ne comparăm cu o potrivire cu un șir pre-proiectat și, în funcție de tipul de potrivire sau nu, efectuăm anumite acțiuni.
Al doilea manipulator va fi un pic mai interesant:
Dacă șirul este egal! Ieșiți, apoi oprim botul. Dar nu toată lumea o poate opri, de aceea verificăm mai întâi că numărul expeditorului este egal cu numărul administratorului specificat la începutul programului.
În acest fel, puteți programa orice proceduri disponibile numai pentru administratorul de server.
Următoarea procesare va trimite o listă numerotată a tuturor întrebărilor.
Aici trec printr-o matrice cu întrebări, formează șirul șir de caractere și trimite-l, dar nu imediat întreaga listă, ci pentru piese de $ po_skolko. Am făcut acest lucru mai târziu, că ICQ are restricții privind dimensiunea mesajului. Dacă există multe întrebări, nu toate vor ajunge. Mesajul va fi circumcis. Prin urmare, este necesar să trimiteți părți.
Și acum cel mai important tratament este trimiterea unui răspuns la întrebarea:
Nu am încercat să trișez și am făcut un test prost! Gol ($ questions [$ messaga] ['otvet']). Desigur, o puteți face corect, dar mai întâi, această opțiune are și dreptul de a exista și, în al doilea rând, încerc doar să transmit esența.
Iată codul complet al programului:
Dacă dezvoltați această idee, puteți scrie o aplicație pentru administrarea site-ului prin ICQ, de exemplu, deconectați bunurile de la magazinul online. Și nu numai site-ul, dar și serverul. Principalul lucru nu este să uitați să verificați numărul administratorului.
De asemenea, puteți trimite un parametru cu comanda, de exemplu numărul articolului. De exemplu, șirul hide_article 28 înseamnă să ascundeți articolul cu numărul articolului. Operatorul va fi următorul:
Apoi, vă puteți conecta imaginația și puteți scrie orice procesare pentru a gestiona site-ul prin icq.
Arhiva cu codul sursă poate fi descărcată aici.