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.

Erlazionatutako artikuluak