Tag Archives: feed

Multi nervi cu WordPress si PHP

Am stat astazi cateva ore, asta daca nu pun la socoteaza si orele pierdute in primavara la munca pe cand lucram la Boomr.ro, sa-mi dau seama de ce nu merge sa parsezi anumite feeduri XML (RSS si Atom) din PHP. Acum in sfarsit mi-am dat seama care era problema, dar chestia e ca nu o pot rezolva.

Concluzia: nu poti parsa feedurile generate de WordPress 2.1.3 (posibil si alte versiuni 2.1.*) din PHP. Dupa ce am facut upgrade la un WordPress pe care testam, totul a mers perfect.

Edit:

N-a mers nici cu Python, folosind urllib si minidom. E ciudat ca feedurile cu probleme in PHP cu fopen sau file sunt deschise in 10-15 secunde, dar daca folosesti un socket, trimiti un request  HTTP, iei pagina, totul e mai rapid (si pentru feeduirle fara probleme) singura problema fiind ca, cel putin eu nu reusesc, nu merge sa parsezi datele xml primite.

Cum sa generezi un feed RSS?

In ultima vreme nu prea am avut timp de munca, cu toate astea, o intrebare tot m-a macinat. Care e cea mai simpla si “light” metoda de a genera un feed RSS? In momentul de fata, eu nu stiu decat 2 metode:

  1. Metoda folosita de WordPress si de alte moduri si pluginuri pentru diferite forumuri. Aceasta consta in generarea fisierului feed-ului in momentul in care userul il acceseaza. Sa luam un exemplu: ai fisierul rss.php, in interiorul lui pui headerul “Content-type: text/xml;…” si generezi continutul. Problema la aceasta varianta e ca de fiecare data cand un user iti acceseaza feed-ul, trebuie sa faci o interogare, asta in cazul in care iei datele dintr-o baza de date. In cazul in care ai 100 de abonati, fiecare face in medie 5 refreshuri pe zi, asta inseamna 500 de interogari in plus. Stiu ca nu e prea mult si ca in ziua de azi nu prea conteaza, dar ceva parca tot nu suna bine. Singurul lucru bun, dupa mine, e faptul ca ai un control mai bun asupra feed-ului, fisierul fiind genrat dinamic, poti face o statistica a accesarilor (iar mie imi place statistica) samd
  2. Metoda folosita de unele forumuri mai cunoscute. Ce se intampla aici? Sincer nu stiu exact pentru ca nu m-am documentat preea bine, eu pana acum am folosit doar prima metoda. Ce cred ca se intampla? Se creeaza “fizic” un fisier xml ce e updatat la un anumit interval de timp, sau si mai bine, e updatat doar in momentul in care au fost adaugate noi obiecte ce vor fi preluate de feed. Diferenta fata de prima metoda? In cazul in care faci 6 updateuri pe zi ai doar 6 interogari.

Concluzia? Nu am inca una, astept saptamana viitoare sa mi se mai elibereze programul, sa am timp sa optimizez ambele variante si apoi sa le pun in practica pe FifaRomania.

LE: Am gasit si metoda 3, e o combinatie dintre cele doua de mai sus. Folosesti un fisier de cache ce contine feed-ul propriu zis, fisier pe care il updatezi doar cand ai facut un update la site, iar in fisierul rss.php poti sa faci statistici frumoase si alte nebunii iar apoi cand ti-ai terminat treaba, dai drumul si la feed.

RSS Feed ProSport

Am observat ca cei de la Prosport au lansat de cateva zile o noua versiune a site-ului, partea buna la prima vedere este ca au inclus si un feed RSS cu ultimele stiri. Din pacate aici se opresc lucrurile bune deoarece au cam dat-o in bara. Au uitat niste chestii destul de importante.

RSS Prosport

Nu uitati sa si deschideti tagurile de titlu si descriere, daca s-ar mai adauga si un titlu si o scurta descriere pentru articol, ar fi perfect.