Avatar billede svoeber Nybegynder
31. marts 2004 - 16:28 Der er 6 kommentarer

Eksekvere lokal php-fil via php-script - file() alternavtiv

Hej,
jeg står med et PHP-script, som genererer en dynamisk menu.
Pga. lange svar-tider fra scriptet ønsker jeg at cache resultatet i en fil, som jeg kan hente i stedet.

Min umiddelbare løsning var at bruge file() til dette formål, dvs. $output = implode("",file("http://www.mitdomæne.dk/menu.php")), og så skrive $output til en fil bagefter.
Det virker på min lokale windoze, men på mit webhotel går der tilsyneladende noget galt, når jeg bruger file() på en URL, der ligger på samme server. (file("http://www.eksperten.dk") virker fint).

Derfor: er der en måde hvor jeg kan eksekvere et PHP-script og smide output til en fil (uden at lave om på original-scriptet)?
Jeg har ikke shell-adgang til webhotellet.
Avatar billede swaxi Nybegynder
31. marts 2004 - 16:50 #1
du kan bruge en outputbuffer.
eg.
ob_start();
include("ditscript.php");
$var = ob_get_contents();
ob_end_clean();
Avatar billede svoeber Nybegynder
31. marts 2004 - 16:58 #2
Ja, det ligner noget - jeg skal lige finde ud af, om der er problemer i at variabelrummet nu bliver delt med det nye script.
Vender tilbage med point, hvis det kører.
Avatar billede svoeber Nybegynder
31. marts 2004 - 17:40 #3
Hmm... hvis jeg skal bruge outputbufferen, må jeg lave en helt ny løsning.
Jeg skal bruge det i et kompliceret setup, hvor koden, der henter "ditscript.php", skal ligge i et funktionsbibliotek - som bliver inkluderet i "ditscript.php"....

Så igen, er der en måde hvor jeg kan eksekvere et PHP-script og smide output til en fil uden at inkludere selve koden fra scriptet?
Avatar billede swaxi Nybegynder
31. marts 2004 - 18:24 #4
jeg kan ikke lige se problemet.
disse to funktioner er komplet identiske :

function loadmenu1()
{
    ob_start();
    include("ditscript.php");
    $var = ob_get_contents();
    ob_end_clean();
    echo $var;
}

function loadmenu2()
{
    include("ditscript.php");
}
Avatar billede sukos Juniormester
01. april 2004 - 00:43 #5
Hvad med en fopen() ???
Avatar billede svoeber Nybegynder
28. april 2004 - 12:46 #6
swaxi, jeg endte med at bruge dit forslag - så lægger du et svar?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester