Avui m’he trobat amb un problema curiós: intentava accedir a una pàgina web des de la funció fopen() del PHP per poder parsejar el codi però aquesta tasca en principi trivial era absolutament impossible amb la URL en concret que volia accedir (amb altres si que funcionava).
El curiós del tema és que des del navegador si que es podia accedir a la web en qüestió.
Quin era el problema? Que d’alguna manera és limitava la conexió HTTP des d’algo que no fos un navegador (que fa conexions GET). Cap problema, la solució era obrir una conexió mitjançant sockets i reproduïr manualment el protocol HTTP.
Quant ho estava fent, he trobat la classe HTTPRequest a la documentació oficial de PHP que precisament fà el que buscava i de forma molt elegant.
Reprodueixo el codi, per si es perd l’enllaç a l’original.
Continue reading →