PHP 7.4 அல்லது அதற்குப் பிந்தையதற்கு, கட்டளையின் அளவுருக்களையும் சைல்ட் செயல்முறையின் சூழலையும் தனித்தனியாக வைத்திருங்கள்:

$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 மற்றும் $descriptorSpec பயன்பாட்டின் தற்போதைய வெளியீட்டு கையாளலில் இருந்து வருகின்றன. தோல்வியடைந்த தொடக்கத்தைச் சரிபார்க்கவும், குழாய்களை நிர்வகிக்கவும், அந்த வாழ்க்கைச் சுழற்சி வழியாக செயல்முறையை மூடவும்.

array_replace(getenv(), ...) பெற்றோர் சூழலைப் பாதுகாத்து, குழந்தைக்கு இந்த இரண்டு மதிப்புகளை மாற்றுகிறது. மரபுவழியாகப் பெற்ற பெரிய எழுத்து ப்ராக்ஸி மற்றும் பைபாஸ் மாறிகளை, அவை நோக்கிய பாதையை மாற்றக்கூடியபோது மதிப்பாய்வு செய்யவும்.

அளவுரு வரிசை shell-ஐ சான்றுகளின் ஆம்பர்சேண்ட், டாலர் குறியீடுகள் அல்லது இடைவெளிகளை விளக்குவதைத் தடுக்கிறது. shell கட்டளையில் கணக்கைச் சுமக்கும் ஒதுக்கீடு எதுவும் உட்பொதிக்கப்படவில்லை.

இந்த எடுத்துக்காட்டு curl-ஐத் தேர்ந்தெடுக்கிறது, ஏனெனில் அது காட்டப்பட்ட மாறிகளை ஆதரிக்கிறது. HTTP ப்ராக்ஸி பட்டியலில் இருந்து ஒரு முகவரி பொது HTTP பாதைக்கு அந்த சூழல் மதிப்புகளை நிரப்ப முடியும். வேறு இயக்கக்கூடிய கோப்புக்கு அதன் சொந்த ஆதரவு ப்ராக்ஸி இடைமுகம் தேவை; PHP-இன் சொந்த cURL விருப்பங்கள் அந்த வெளிப்புற நிரலை அமைக்காது.

தொடர்புடைய கட்டுரைகள்