Carregar web dins una variable PHP

Potser hi ha una forma trivial de fer-ho però jo no l’he trobat. El problema que acabo de solucionar és un que m’ha perseguit des dels meus inicis de programador de PHP i que no havia acabat de solucionar de forma el suficientment elegant.

El repte és ben senzill: incrustar el contingut d’una pàgina generada en php, per exemple, dins d’una variable.
El PHP te funciones per incloure ( include() ) un fitxer dins d’un altre, i executar-lo, però això no em servia, ja que jo el que volia es que aquest estigues dins d’una variable i no seria correcte fer:

$foo = include(”menu.php?idioma=3″);

Fa temps vaig solucionar el problema fent que el volcat me’l fes dins d’un textarea d’un formulari i que inmediatament s’autoreenvies per disposar del contingut dins d’una variable. Aquesta solució era molt patillera, a part de no funcionar bé en depent de quins navegadors antics, ja que limitaven el tamany dels textarea.

Bé, la solució és molt més fàcil que això: només cal obrir el fitxer amb un fopen() passant com a parametre una URL amb les seves variables. Això ens permetra llegir la cadena resultant un cop executat l’script PHP del fitxer remot.

$file = fopen (”http://www.servidor.com/menu.php?
idioma=3″, “r”);
if (!$file) {
echo “No es pot llegir!.\n”;
exit;
}
$foo =”";
while (!feof ($file)) {
$foo .= fgets ($file, 1024);
}
fclose($file);

I ja està: dins de $foo tindrem el contingut de la pagina.

Més senzill, impossible. :)