Għal PHP 7.4 jew aktar tard, żomm l-argumenti tal-kmanda u l-ambjent tal-proċess tifel separati:

$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 u $descriptorSpec ġejjin mill-immaniġġjar tal-output eżistenti tal-applikazzjoni. Iċċekkja jekk il-bidu falliex, immaniġġja l-pajpijiet u agħlaq il-proċess f'dak iċ-ċiklu tal-ħajja.

array_replace(getenv(), ...) jippreserva l-ambjent tal-ġenitur waqt li jissostitwixxi dawn iż-żewġ valuri għat-tifel. Erġa' ara l-varjabbli tal-proxy u tal-bypass li ntirtu b'ittri kapitali meta jistgħu jbiddlu r-rotta maħsuba.

L-array ta' argumenti jwaqqaf lill-shell milli jinterpreta l-ampersands, is-sinjali tad-dollaru jew l-ispazji tal-kredenzjali. M'hemm l-ebda assenjazzjoni li ġġorr kont inkorporata f'kmanda tas-shell.

Dan l-eżempju jagħżel curl għax jappoġġja l-varjabbli murija. Indirizz mill-lista tal-proxy HTTP jista' jimla dawk il-valuri tal-ambjent għal rotta HTTP pubblika. Eżegwibbli differenti jeħtieġ l-interface proxy appoġġjat tiegħu stess; l-għażliet cURL ta' PHP stess ma jikkonfigurawx dak il-programm estern.

Artikli relatati