Send eit proxy-miljø til ein underordna PHP-kommando
Bruk det separate miljøet og argumentmatrisa til proc_open for éin nedlastar, og hald arva verdiar medvite.
For PHP 7.4 eller nyare, hald kommandolinjeargumenta og miljøet til barneprosessen fråskilde:
$environment = array_replace(getenv(), [
'http_proxy' => 'http://proxy.example:8080',
'https_proxy' => 'http://proxy.example:8080',
]);
$process = proc_open(
['/usr/bin/curl', '--fail', '--max-time', '30',
'--output', $outputFile, 'https://downloads.example/data.csv'],
$descriptorSpec,
$pipes,
null,
$environment
);$outputFile og $descriptorSpec kjem frå den eksisterande utdatabehandlinga i applikasjonen. Sjekk for mislykka start, handsam røyra og lukk prosessen gjennom den livssyklusen.
array_replace(getenv(), ...) beheld foreldremiljøet medan det byter ut desse to verdiane for barnet. Gå gjennom arva proxy- og omgåingsvariablar i store bokstavar når dei kan endre den tiltenkte ruta.
Argumentmatrisa hindrar eit skal i å tolke &-teikn, dollarteikn eller mellomrom i påloggingsinformasjon. Det er inga kontoberande tilordning innebygd i ein skalkommando.
Dette dømet vel curl fordi det støttar variablane som er viste. Ei adresse frå HTTP-proxylista kan fylle ut desse miljøverdiane for ei offentleg HTTP-rute. Ei anna køyrbar fil treng sitt eige støtta proxygrensesnitt; PHPs eigne cURL-val konfigurerer ikkje det eksterne programmet.