PHP программный POST не работает - PullRequest
0 голосов
/ 05 сентября 2011

Я сейчас пытаюсь отправить данные с одного сервера на другой.Это не что-то сложное, просто очень длинная строка (что означает ~ 3-4 мб).Я уже пробовал несколько способов, таких как fopen () и / или cURL, но с определенной точки в размере строки, которая должна быть отправлена, $ _POST ['content'] кажется пустым все время.Вот код, который я использую:

    $post_data['content'] = $sql;

//traverse array and prepare data for posting (key1=value1)
foreach ( $post_data as $key => $value) {
    $post_items[] = $key . '=' . $value;
}

//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);

//create cURL connection
$curl_connection =
  curl_init('http://myIP/myDir/myscript.php');

//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
  "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);

//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);

//perform our request
$result = curl_exec($curl_connection);

//show information regarding the request
//print_r(curl_getinfo($curl_connection));
echo curl_errno($curl_connection) . '-' .
                curl_error($curl_connection);

//close the connection
curl_close($curl_connection);`

Сценарий получения должен записать содержимое в мою базу данных, поэтому он временно записывает опубликованную строку в файл (потому что мне нужно использовать Load Data Local In Fileпо соображениям производительности): $myFile = "/my/path/to/file.txt"; $fh = fopen($myFile, 'w') or die("can't open file"); fwrite($fh,$_POST['content']); fclose($fh);

Есть предложения?

1 Ответ

0 голосов
/ 30 сентября 2011

Вы должны использовать функцию http_build_query для создания строки запроса, попробуйте это:

$post_string = http_build_query($post_data);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...