Eng Proxy-Ëmwelt un eng PHP-Kandkommando weiderginn
Benotzt dem proc_open seng separat Ëmwelt an Argumentarray fir een Downloader, an erhaalt ierflech Wäerter bewosst.
Fir PHP 7.4 oder méi nei, haalt d'Kommandoargumenter an d'Ëmwelt vum Kandprozess getrennt:
$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 an $descriptorSpec kommen aus der bestehender Ausgabsbehandlung vun der Applikatioun. Iwwerpréift en doudege Start, geréiert d'Päifen a schléisst de Prozess duerch dee Liewenszyklus.
array_replace(getenv(), ...) erhält d'Elterenëmwelt, wärend et dës zwou Wäerter fir d'Kand ersetzt. Iwwerpréift ierflech Groussbuchstawen-Proxy- a Bypass-Variabelen, wann se de geplangte Wee kënnen änneren.
Den Argumentarray verhënnert, datt eng Shell Ampersanden, Dollarzeechen oder Espace vun den Authentifikatiounsdonnéeën interpretéiert. Et gëtt keng kontobäerdeg Zousetzung, déi an enger Shellkommando agebaut ass.
Dëst Beispill wielt curl, well en déi gewisen Variabelen ënnerstëtzt. Eng Adress aus der HTTP-Proxy-Lëscht kann déi Ëmweltwäerter fir eng ëffentlech HTTP-Route fëllen. Eng aner ausféierbar Datei brauch hir eegen ënnerstëtzten Proxy-Interface; dem PHP seng cURL-Optiounen konfiguréieren dee externen Programm net.