Используйте POST, чтобы создать, и ПОМЕСТИТЬ в обновление. Это - то, как Ruby on Rails делает его, так или иначе.
PUT /items/1 #=> update
POST /items #=> create
Чтобы использовать file_get_contents ()
через прокси-сервер, который не требует аутентификации, должно выполняться что-то вроде этого:
(Я не могу проверить этот: мой прокси требует аутентификации)
$aContext = array(
'http' => array(
'proxy' => 'tcp://192.168.0.2:3128',
'request_fulluri' => true,
),
);
$cxContext = stream_context_create($aContext);
$sFile = file_get_contents("http://www.google.com", False, $cxContext);
echo $sFile;
Конечно, замена IP и порта моего прокси на те, которые подходят для вас; -)
Если вы получаете такую ошибку:
Warning: file_get_contents(http://www.google.com) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 407 Proxy Authentication Required
Это означает, что ваш прокси требует аутентификации.
Если прокси требует аутентификации, вам придется добавить пару строк, например:
$auth = base64_encode('LOGIN:PASSWORD');
$aContext = array(
'http' => array(
'proxy' => 'tcp://192.168.0.2:3128',
'request_fulluri' => true,
'header' => "Proxy-Authorization: Basic $auth",
),
);
$cxContext = stream_context_create($aContext);
$sFile = file_get_contents("http://www.google.com", False, $cxContext);
echo $sFile;
То же самое с IP и портом, но на этот раз также LOGIN и PASSWORD ;-) Проверьте все допустимые параметры http .
Теперь вы передаете прокси-серверу заголовок Proxy-Authorization , содержащий ваш логин и пароль.
И. .. Страница должна отображаться; -)
В зависимости от того, как работает прокси-сервер, stream_context_set_default может вам помочь .
$context = stream_context_set_default(
array(
'http'=>array(
'header'=>'Authorization: Basic ' . base64_encode('username'.':'.'userpass')
)
)
);
$result = file_get_contents('http://..../...');