In ogni caso, la header location non fa quello che vuoi: se file.php verrà richiamato ogni tot tempo come cron job pianificato, il browser NON viene coinvolto nell'esecuzione di un cron job, ed in effetti è come se eseguissi il tuo file.php da linea di comando (CLI) quindi nessuno header potrà mai avere il benché minimo effetto, visto che gli header vengono in generale eseguiti dal browser (senza contare che molti header, come Location, non possono essere ripetuti, quindi il secondo di quei comandi SOVRASCRIVE lo header location del primo).
Il modo di fare questa cosa è invece:
$result=file_get_contents("url della pagina da richiamare");
Se quel che vuoi è semplicemente simulare che l'utente carichi nel browser una pagina.
Se invece devi fare una chiamata ad una api, allora puoi guardare tutte le funzioni della libreria CURL di php, che ti permettono di fare chiamate con parametri, sia GET che POST, e di configurare tutti i dettagli della chiamata stessa.
Ricorda che quando uno script php viene chiamato sulla CLI molte cose sono diverse, per esempio non esiste $_SERVER["REQUEST_URI"] e molte altre variabili che vengono normalmente impostate dal server web, apache o iis che sia, come per esempio $_GET e $_POST.

Rispondi quotando