A dolog valahogy úgy kezdődött, hogy kezdett idegesíteni a Sage. A problémám az volt, hogy több gépen is olvasgatom a feedjeimet és zavart, hogy amit az egyiken már megjelöltem olvasottnak, az ugye a másikon még olvasatlanként szerepelt. Gondoltam készítek egy kis oldalacskát magamnak, amin majd online olvasgathatom a feedeket és akkor nincs ilyen probléma. Mostanság úgy is divat mindennel a webre költözni.

Első próbálkozásom a fapados fsockopen() volt, amiről rövid időn belül meg kellett győződnöm, hogy a http protokoll alaposabb ismerete nélkül több problémát okoz, mint amennyit megold. Az addig még rendben lett volna, hogy az elejéről el kell hagyni a header-eket, de néha a headereket záró üres sor után is volt még egy - a tartalomba nem bele illő - szám, sőt sikerült olyan feedet is találnom, ahol a végén is volt valami szám. Kezdett a kód elég csúnyácskává válni, amikor megtaláltam a PHP cURL kiterjesztését, amit pont az ilyen lámáknak találtak ki, mint én.

A dolog rettentően egyszerű. Ezt a kis kódcsomagot arra találták ki, hogy megkönnyítse az életünk ha http, ftp, még-sok-minden-más protokollal kényszerülünk dolgozni. Tehát a sok feltétellel és kivétellel és miazmással telitűzdelt kód leegyszerüsödött ilyen szépre:

$conn = curl_init($url);
curl_setopt($conn, CURLOPT_HEADER, false);
curl_setopt($conn, CURLOPT_RETURNTRANSFER, true);

$feed = curl_exec($conn);

curl_close($conn);

$xml = DOMDocument::loadXML(trim($feed));

Egyszerű és nagyszerű. Nyitunk egy új kapcsolatot, megmondjuk, hogy nem kérünk header-eket, viszont az eredményt azt adja vissza és ne rögtön a képernyőre írja, megszerezzük az eredményeket és csinálunk belőle egy DOMDocument-et. Remélem mindenkinek megjött az étvágya, kellemes játszadozást.