ለ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(), ...) የወላጁን አካባቢ ይጠብቃል፣ እነዚህን ሁለት እሴቶች ለልጁ ሲተካ። የተወረሱ የአቢይ ፊደል ፕሮክሲ እና የማለፊያ ተለዋዋጮች የታሰበውን መንገድ ሊቀይሩ ሲችሉ ይመልከቱ።

የአርጉመንት ድርድሩ ሼል የምስክር ወረቀት አምፐርሳንዶችን፣ የዶላር ምልክቶችን ወይም ክፍተቶችን እንዳይተረጉመ ይከላከላል። በሼል ትዕዛዝ ውስጥ የተካተተ መለያ-ተሸካሚ ምደባ የለም።

ይህ ምሳሌ curlን ይመርጣል ምክንያቱም የተመለከቱትን ተለዋዋጮች ይደግፋል። ከየHTTP ፕሮክሲ ዝርዝር የሚመጣ አድራሻ እነዚያን የአካባቢ እሴቶች ለሕዝባዊ HTTP መንገድ ሊሞላ ይችላል። የተለየ ፕሮግራም የራሱን የሚደገፍ የፕሮክሲ በይነገጽ ይፈልጋል፤ የPHP የራሱ cURL አማራጮች ያንን ውጫዊ ፕሮግራም አያዋቅሩም።

ተዛማጅ ጽሑፎች