Atunci când a creat unul dintre site-uri, a existat o cerință neobișnuită - clientul dorea să scoată în plus față de blocurile obișnuite de plăceri numărul total de likes de trei soc. rețele: Facebook. Twitter. VKontakte. Dacă există doar un bloc cu plăcile / acțiunile de pe pagină, nu există nici o problemă, ca în termeni de blocuri înșiși, și în ceea ce privește obținerea numărului de aprecieri. Pentru aceasta, JSON a făcut doar întrebări JSON în JSON. Dar pe pagina principală o listă de știri, pentru fiecare dintre care aveți nevoie de propriul dvs. bloc cu butoane sociale. rețele și numărul total de persoane interesate. Ca rezultat, am decis să amânați memoria cache în care sunt stocate aceste numere. Scriptul de recalculare rulează la fiecare 10 minute. Adică, php trebuie să primească informații acum.
Toate lucrările în php sunt reduse la mai multe apeluri către funcția file_get_contents. Cine a lucrat deja cu ea, înțelege cât de mult este costisitor. Funcția returnează un fișier ca un șir. Prin aceasta, când îl numiți în repetate rânduri, scriptul execută timpul decent.
Pentru Facebook și Twitter, bine, există date în JSON. Dar restul trebuie să parseze pagina rezultată, din acest motiv, iar scenariul rulează mult timp.
Exemplele sunt scrise strict pentru vizualizare și nu conțin procesarea tuturor erorilor posibile care pot apărea atunci când se solicită date de la site-uri terțe. Același facebook, de exemplu, limitează numărul de conexiuni primite de la un ip. Deci, dacă accesați în mod repetat același script, acesta va înceta să vă răspundă. De asemenea, este necesar ca setările allow_url_fopen din php.ini să fie activate. Ei bine și pentru paginile https suport ssl este necesar (o linie extensie = php_openssl.dll în php.ini ракомменьте).