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 විකල්ප එම බාහිර වැඩසටහන වින්‍යාස නොකරයි.

අදාළ ලිපි