Heim  >  Artikel  >  Backend-Entwicklung  >  So senden Sie eine Post-Anfrage in PHP

So senden Sie eine Post-Anfrage in PHP

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-09-27 16:03:3436251Durchsuche

So senden Sie eine Post-Anfrage in PHP

In diesem Artikel werden hauptsächlich drei Methoden zum Senden von Post-Anfragen mit PHP vorgestellt. Curl, file_get_content und fsocket werden zum Implementieren von Post-Übermittlungsdaten verwendet.

Verwandte Empfehlungen: „php-Einführungs-Tutorial

Methode 1: file_get_content version

/**
 * 发送post请求
 * @param string $url 请求地址
 * @param array $post_data post键值对数据
 * @return string
 */
function send_post($url, $post_data) {
  
  $postdata = http_build_query($post_data);
  $options = array(
    'http' => array(
      'method' => 'POST',
      'header' => 'Content-type:application/x-www-form-urlencoded',
      'content' => $postdata,
      'timeout' => 15 * 60 // 超时时间(单位:s)
    )
  );
  $context = stream_context_create($options);
  $result = file_get_contents($url, false, $context);
  
  return $result;
}
  
//使用方法
$post_data = array(
  'username' => 'stclair2201',
  'password' => 'handan'
);
send_post('http://www.jb51.net', $post_data);
Empfohlenes Handbuch : Komplettes PHP-Selbstlernhandbuch

Methode 2: Socket-Version

<?php
/**
 * Socket版本
 * 使用方法:
 * $post_string = "app=socket&version=beta";
 * request_by_socket(&#39;chajia8.com&#39;, &#39;/restServer.php&#39;, $post_string);
 */
function request_by_socket($remote_server,$remote_path,$post_string,$port = 80,$timeout = 30) {
  $socket = fsockopen($remote_server, $port, $errno, $errstr, $timeout);
  if (!$socket) die("$errstr($errno)");
  fwrite($socket, "POST $remote_path HTTP/1.0");
  fwrite($socket, "User-Agent: Socket Example");
  fwrite($socket, "HOST: $remote_server");
  fwrite($socket, "Content-type: application/x-www-form-urlencoded");
  fwrite($socket, "Content-length: " . (strlen($post_string) + 8) . "");
  fwrite($socket, "Accept:*/*");
  fwrite($socket, "");
  fwrite($socket, "mypost=$post_string");
  fwrite($socket, "");
  $header = "";
  while ($str = trim(fgets($socket, 4096))) {
    $header .= $str;
  }
  
  $data = "";
  while (!feof($socket)) {
    $data .= fgets($socket, 4096);
  }
  
  return $data;
}
?>

Methode 3: Curl-Version

<?php
/**
 * Curl版本
 * 使用方法:
 * $post_string = "app=request&version=beta";
 * request_by_curl(&#39;http://www.jb51.net/restServer.php&#39;, $post_string);
 */
function request_by_curl($remote_server, $post_string) {
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $remote_server);
  curl_setopt($ch, CURLOPT_POSTFIELDS, &#39;mypost=&#39; . $post_string);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($ch, CURLOPT_USERAGENT, "jb51.net&#39;s CURL Example beta");
  $data = curl_exec($ch);
  curl_close($ch);
  
  return $data;
}
?>
Empfohlene verwandte Artikel:
1.Eine Zusammenfassung von Anwendungsbeispielen der POST()-Methode in PHP
2.Drei häufige Verwendungen von PHP zur Simulation von Post-Anfragen
Verwandte Videoempfehlungen:
1.Dugu Jiujian (4)_PHP-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo senden Sie eine Post-Anfrage in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn