Transdoni retperilan medion al PHP-infana komando
Uzu la apartan medion kaj argumentan tabelon de proc_open por unu elŝutilo, konservante hereditajn valorojn intence.
Por PHP 7.4 aŭ pli nova, tenu la komandajn argumentojn kaj la infanan medion apartaj:
$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 kaj $descriptorSpec venas el la ekzistanta eligmanaĝerado de la aplikaĵo. Kontrolu fiaskintan lanĉon, administru la tubojn kaj fermu la procezon tra tiu vivociklo.
array_replace(getenv(), ...) konservas la gepatran medion dum ĝi anstataŭigas ĉi tiujn du valorojn por la infano. Reviziu hereditajn majusklajn retperilajn kaj preterpasantajn variablojn kiam ili povus ŝanĝi la celitan itineron.
La argumenta tabelo malhelpas ŝelon interpreti ampersandojn, dolarsignojn aŭ spacojn de akreditiloj. Neniu kontenhava atribuo estas enmetita en ŝelan komandon.
Ĉi tiu ekzemplo elektas curl ĉar ĝi subtenas la montritajn variablojn. Adreso el la HTTP-retperila listo povas plenigi tiujn medivvalorojn por publika HTTP-itinero. Alia ruleblaĵo bezonas sian propran subtenatan retperilan interfacon; la propraj cURL-agordoj de PHP ne agordas tiun eksteran programon.