Għaddi Ambjent ta' Proxy lil Kmanda Tifel PHP
Uża l-ambjent separat u l-array ta' argumenti ta' proc_open għal downloader wieħed, filwaqt li tippreserva b'mod intenzjonat il-valuri li ntirtu.
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.