На самом деле Вы, вероятно, хотите использовать utf8_unicode_ci
или utf8_general_ci
.
utf8_general_ci
виды путем снимания всех диакритических знаков и сортировки, как будто это был ASCIIutf8_unicode_ci
, используют порядок сортировки Unicode, таким образом, это сортирует правильно на большем количестве языков Однако, если Вы только используете это для хранения английского текста, они не должны отличаться.
PHP / Curl отлично справится с https-запросом. Что вам может понадобиться, особенно если вы идете против сервера разработки, так это выключить CURLOPT_SSL_VERIFYPEER. Это связано с тем, что сервер разработки может быть самоподписанным и не пройти тест проверки.
$postfields = array('field1'=>'value1', 'field2'=>'value2');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://foo.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POST, 1);
// Edit: prior variable $postFields should be $postfields;
curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // On dev server only!
$result = curl_exec($ch);
Вы также можете использовать параметры потока api и http / https
$postdata = http_build_query(
array(
'FieldX' => '1234',
'FieldY' => 'yaddayadda'
)
);
$opts = array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://example.com', false, $context);
Вам по-прежнему нужно расширение, обеспечивающее шифрование SSL. Это может быть php_openssl или (, если скомпилирован таким образом) php_curl.
Нет, особой разницы нет. Curl делает все необходимое сам.
См. Примеры в комментариях пользователей на справочной странице curl_setopt
, как это делается.
Аналогичный вопрос: POST к URL-адресу с PHP и обработкой ответа
Используя принятое решение ( Snoopy PHP Class ), вы можете сделать что-то вроде следующего:
<?php
$vars = array("fname"=>"Jonathan","lname"=>"Sampson");
$snoopy = new Snoopy();
$snoopy->curl_path = "/usr/bin/curl"; # Or whatever your path to curl is - 'which curl' in terminal will give it to you. Needed because snoopy uses standalone curl to deal with https sites, not php_curl builtin.
$snoopy->httpmethod = "POST";
$snoopy->submit("https://www.somesite.com", $vars);
print $snoopy->results;
?>
Если вы используете curl, вы можете передать параметр -d для своих параметров. Это приводит к использованию сообщения HTTP. Что-то вроде
curl http://foo.com -d bar=baz -d bat=boo
приведет к HTTP-сообщению на http://foo.com с соответствующими параметрами