2015-10-05 4 views
0

Vous savez comment en PHP il existe une méthode appelée file_get_content qui récupère le contenu de la page pour l'URL fournie? Y a-t-il une méthode opposée pour cela? Comme, par exemple, file_post_content, où vous pouvez publier des données sur des sites Web externes? Juste demander à des fins éducatives.Méthode opposée de file_get_content

+1

fonction file_get_contents de PHP lire les données à partir d'une locale/fichier distant. Il existe également une fonction appelée file_put_contents (http://php.net/file_put_contents) pour écrire des fichiers localement. L'écriture de fichiers à distance est une question différente. –

+2

voir ce Q & A à propos de la publication des données en utilisant curl http://stackoverflow.com/questions/2138527/php-curl-http-post-sample-code –

+0

Je voudrais aussi renvoyer cURL. Vous pourriez écrire une fonction qui fait cela aussi. – Twisty

Répondre

1

Vous pouvez utiliser sans cURL mais file_get_contents PHP cet exemple:

$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); 

Voir le site de PHP: http://php.net/manual/en/function.file-get-contents.php#102575

0

pourrait écrire un:

<?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

Qu'est-ce que cela fait exactement? – jessica

+0

En utilisant cURL, ceci sera envoyé à l'URL fournie. Si aucune donnée n'est incluse, il effectue simplement un POST et renvoie les résultats. Si vous lui transmettez un tableau, ceux-ci seront publiés dans l'URL. Encore une fois le résultat serait retourné. Par exemple, si vous souhaitez publier un TimeZone sur une API et récupérer l'heure, vous pouvez utiliser la fonction comme suit: '$ result = file_post_content (" http://api.time.org/ ", array ('q '=>' UTC ')); ' – Twisty

+0

Et s'ils ont plus d'un champ? – jessica