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
Répondre
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
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;
}
?>
Qu'est-ce que cela fait exactement? – jessica
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
Et s'ils ont plus d'un champ? – jessica
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. –
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 –
Je voudrais aussi renvoyer cURL. Vous pourriez écrire une fonction qui fait cela aussi. – Twisty