Avatar billede nemlig Professor
28. juli 2022 - 21:34 Der er 2 kommentarer og
1 løsning

Køre forskellige PHP-scripts via file_get_contents() eller findes bedre løsning

Hejsa.
Jeg har et bookingsystem, der ligger på forskellige webhoteller.
Her har jeg en php-fil (cronjob.php), hvor jeg kalder forskellige scripts på samme webhotel/domæne. Her benytter jeg file_get_contens(), og det har indtil nu fungeret fint. Programafviklingen sker i løbet af 1-3 sekunder.
Uddrag af programkode:
file_get_contents('https://domæne/autoemail.php');
file_get_contents('https://domæne/backup.php');
file_get_contents('https://domæne/copy.php');


Nu er bookingsystemet installeret på ny server, men når jeg kører php-filen (cronjob.php), så sker der ingenting (står og sender i 60 sekunder uden der sker noget).

phpinfo.php viser at "allow_url_fopen = On".

Problemet er kun, når filen i file_get_contents() ligger på samme domæne som cronjob.php. Hvis jeg i file_get_contens() kalder en fil uden for domænet, så kører cronjob.php.

Nogen forslag til hvad problemet er eller en bedre løsning?
Avatar billede nemlig Professor
28. juli 2022 - 22:16 #1
Efter genstart af serveren, så virker det igen.
Men jeg vil meget gerne vide om file_get_contents() er den effektive måde at afvikle php-scripts.
Håber på lidt input.
Avatar billede arne_v Ekspert
29. juli 2022 - 01:30 #2
Køres de så køres de.

Og PHP scripts effektivitet afhænger ikke af hvilken kode der sender HTTP requesten.

Curl extension eller en HTTP client som bruger curl ville give dig mere kontrol over scriptene, hvis du vil sende headere med eller lave POST, men det er er ikke sikkert at du har brug for disse features,

Du kunne også include de PHP filer og kalde funktionerne direkte, hvis du  ikke har brug for en separat request context. Det vil uden tvivl være mere effektrivt, men ændrer så også hele konteksten.
Avatar billede nemlig Professor
29. juli 2022 - 20:16 #3
Nice - tak for god info Arne.
Da de forskellige scripts, som skal køres, er selvstændige programmer, så bliver de indtil videre afviklet via cron.
Jeg forstår dit råd om, at det vil være mere effektivt med include(), men det kræver en større omskrivning.
Med nuværende løsning sker programafviklingen typisk indenfor 3 sekunder. Det kan jeg fint leve med. Jeg vil dog kigge nærmere på Curl().
Tak endnu engang med dine input.
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

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





CIO
Stort CIO-interview: Lemvigh-Müllers milliard-omsætning er blevet digital