Proxy ingurunea PHP seme-komandoari pasatzea
Erabili proc_open-en ingurune bereizia eta argumentu-multzoa deskargatzaile bakarrerako, heredatutako balioak nahita gordez.
PHP 7.4 edo berriagoetarako, eduki itzazu komandoko argumentuak eta seme-prozesuaren ingurunea bereizita:
$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 eta $descriptorSpec aplikazioaren lehendik dagoen irteera-kudeaketatik datoz. Egiaztatu abiarazte hutsa, kudeatu hodiak eta itxi prozesua bizi-ziklo horren bidez.
array_replace(getenv(), ...) gurasoaren ingurunea gordetzen du, bi balio horiek semearentzat ordezkatzen dituen bitartean. Berrikusi heredatutako proxy eta saihesbide aldagai larriak, aurreikusitako ibilbidea alda dezaketenean.
Argumentu-multzoak shell-ari eragozten dio kredentzialen anpersandak, dolar-zeinuak edo zuriuneak interpretatzea. Ez dago konturik daraman esleipenik shell komando batean txertatuta.
Adibide honek curl aukeratzen du erakutsitako aldagaiak onartzen dituelako. HTTP proxy zerrendako helbide batek ingurune-balio horiek bete ditzake HTTP ibilbide publiko baterako. Beste exekutagarri batek bere proxy interfaze onartua behar du; PHPren beraren cURL aukerak ez du kanpoko programa hori konfiguratzen.