2015-10-05 6 views
0

Вы знаете, как в PHP существует метод под названием file_get_content, который получает содержимое страницы для предоставленного URL-адреса? Есть ли для этого противоположный метод? Как, например, file_post_content, где вы можете отправлять данные на внешние веб-сайты? Просто спрашивайте в образовательных целях.Противоположный метод file_get_content

+1

функция file_get_contents PHP читать данные с локального/удаленный файл. Существует также функция file_put_contents (http://php.net/file_put_contents) для записи файлов локально. Написание файлов удаленно - это другое дело. –

+2

см. Этот вопрос о публикации данных с помощью 'curl' http://stackoverflow.com/questions/2138527/php-curl-http-post-sample-code –

+0

Я бы тоже эхо cURL. Вы можете написать функцию, которая тоже делает это. – Twisty

ответ

1

Вы можете использовать без Curl, но file_get_contents PHP этого примера:

$url = 'URL'; 
$data = array('field1' => 'value', 'field2' => 'value'); 
$options = array(
     'http' => array(
     'header' => "Content-type: application/x-www-form-urlencoded\r\n", 
     'method' => 'POST', 
     'content' => http_build_query($data), 
    ) 
); 

$context = stream_context_create($options); 
$result = file_get_contents($url, false, $context); 
var_dump($result); 

Смотрите сайт PHP: http://php.net/manual/en/function.file-get-contents.php#102575

0

могли бы написать один:

<?php 
function file_post_content($url, $data = array()){ 
    // Collect URL. Optional Array of DATA ['name' => 'value'] 
    // Return response from server or FALSE 
    if(empty($url)){ 
     return false; 
    } 

    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    if(count($data)){ 
     curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); 
    } 
    // receive server response ... 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $svr_out = curl_exec ($ch); 
    curl_close ($ch); 
    return $svr_out; 
} 
?> 
+0

Что именно это делает? – jessica

+0

Использование cURL, это будет опубликовать на указанный URL. Если данные не включены, он просто выполняет POST и возвращает результаты. Если вы передадите массив, они будут отправлены в URL-адрес. И снова результат будет возвращен. Например, если вы хотите отправить TimeZone в API и вернуть время, вы можете использовать такую ​​функцию: '$ result = file_post_content (« http://api.time.org/ », array ('q '=>' UTC ')); ' – Twisty

+0

Что делать, если у них более 1 поля? – jessica