Envio de dados via método POST usando CURL em PHP

Com CURL, é possível enviar dados via método POST, simulando o envio de um formulário. Para isso, é necessário especificar que a requisição será feita usando o método POST. Isso é feito usando a seguinte configuração:

curl.php<?php
  curl_setopt($curl, CURLOPT_POST, 1);
?>

Agora precisamos especificar os dados que serão transmitidos. Eles podem estar contidos em um array:

curl.php<?php
  $data = ['field1'=>'value1', 'field2'=>'value2'];
  curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
?>

Os dados também podem ser especificados na forma de Query String:

curl.php<?php
  $data = 'field1=value1&field2=value2';
  curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
?>
Задание 1

Envie uma requisição para a seguinte página e obtenha o resultado:

file.php<?php
  if (!empty($_POST)) {
    echo json_encode($_POST);
  } else {
    echo 'error';
  }
?>
Задание 2

Envie uma requisição para a seguinte página e obtenha o resultado:

file.php<?php
  if (!empty($_POST)) {
    echo $_POST['num1'] + $_POST['num2'];
  } else {
    echo 'error';
  }
?>
Задание 3

Modifique sua função para que, como um segundo parâmetro opcional, ela aceite um array de dados enviados via método POST.