Maison  >  Article  >  développement back-end  >  PHP utilise curl pour implémenter la fonction de soumission de formulaire simulé

PHP utilise curl pour implémenter la fonction de soumission de formulaire simulé

墨辰丷
墨辰丷original
2018-05-22 15:32:211948parcourir

Cet article présente principalement en détail comment PHP utilise curl pour implémenter une simple fonction de soumission de formulaire simulé. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

Le contenu spécifique est le suivant
<.>

//初始化curl
$ch = curl_init();
$url = &#39;xxx&#39;;
$option = [
 CURLOPT_URL => $url,
 CURLOPT_HEADER => 1,
 CURLOPT_RETURNTRANSFER => 1,
];
curl_setopt_array($ch, $option);
$output = curl_exec($ch);
preg_match_all(&#39;/Set-Cookie: (.*);/i&#39;, $output, $str); //正则匹配
//如果有token的话就获取token
preg_match(&#39;/token = \"(.*)\"/i&#39;, $output, $token);
if (empty($str)) {
 return false;
}
$cook = $str[1];
$cookie = implode(&#39;;&#39;, $cook);

$up_url = &#39;xxx&#39;;
$post_data = [
 &#39;name&#39; => &#39;test_&#39;,
 &#39;tel&#39; => &#39;18819271234&#39;,
 &#39;email&#39; => &#39;qqhahadfdfads@163.com&#39;,
 &#39;message&#39; => &#39;this is my message;&#39;,
 &#39;_token&#39; => $token[1],
];
$options = [
 CURLOPT_URL => $up_url,
 CURLOPT_RETURNTRANSFER => 1,
 CURLOPT_HEADER => 1,
 CURLOPT_USERAGENT => "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.96 Safari/537.36",
 CURLOPT_COOKIESESSION => 1,
 CURLOPT_POST => 1,
 CURLOPT_POSTFIELDS => $post_data,
 CURLOPT_COOKIE => $cookie
];
curl_setopt_array($ch, $options);
$res = curl_exec($ch);
// $info = curl_getinfo($ch);
if ($res === FALSE) {
 p(&#39;curl Error: &#39; . curl_error($ch));
}
curl_close($ch);
p($res);

est extrait d'un site Web développé sur la base de Laravel. Il y a un csrf_token dans le formulaire dans Laravel. Vous devez donc obtenir le jeton et apporter le. cookie

Notez ici que vous ne pouvez pas initialiser deux boucles en même temps, sinon le jeton ou le cookie changera. Si vous devez initialiser deux boucles, vous pouvez utiliser le paramètre CURLOPT_COOKIEJAR [Voir le manuel pour plus de détails. ]

Ensuite, lancez :

binggo

Lorsque vous utilisez curl, le plus important est une application de cookie. Après avoir lu le manuel, il existe quatre façons de définir les cookies. A...CURLOPT_COOKIESESSION, CURLOPT_COOKIE, CURLOPT_COOKIEFILE, CURLOPT_COOKIEJAR

Recommandations associées :

php utilise curl pour implémenter le ftp. fonction de téléchargement de fichiers

php envoie des données XML via curl et obtient des données XML

php curl Explication détaillée des étapes pour obtenir la valeur de retour

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn