이 글은 주로 PHP가 컬을 사용하여 간단한 시뮬레이션 양식 제출 기능을 구현하는 방법을 자세히 소개합니다. 관심 있는 친구들은 참고할 수 있습니다.
구체적인 내용은 다음과 같습니다
//初始化curl $ch = curl_init(); $url = 'xxx'; $option = [ CURLOPT_URL => $url, CURLOPT_HEADER => 1, CURLOPT_RETURNTRANSFER => 1, ]; curl_setopt_array($ch, $option); $output = curl_exec($ch); preg_match_all('/Set-Cookie: (.*);/i', $output, $str); //正则匹配 //如果有token的话就获取token preg_match('/token = \"(.*)\"/i', $output, $token); if (empty($str)) { return false; } $cook = $str[1]; $cookie = implode(';', $cook); $up_url = 'xxx'; $post_data = [ 'name' => 'test_', 'tel' => '18819271234', 'email' => 'qqhahadfdfads@163.com', 'message' => 'this is my message;', '_token' => $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('curl Error: ' . curl_error($ch)); } curl_close($ch); p($res);
laravel을 기반으로 개발된 웹사이트입니다. laravel에는 csrf_token 형식이 있으므로 토큰을 가져와서 쿠키를 가져와야 합니다. 동시에 두 개의 컬을 초기화할 수 없습니다. 그렇지 않으면 토큰이나 쿠키가 변경됩니다. 두 개의 컬을 초기화해야 하는 경우 CURLOPT_COOKIEJAR 설정을 사용할 수 있습니다. [자세한 내용은 매뉴얼 참조]
그런 다음 다음을 실행하세요.
binggo
컬을 사용할 때 가장 중요한 것은 쿠키 적용입니다. 매뉴얼을 읽어보면 4가지 쿠키가 설정되어 있습니다...CURLOPT_COOKIESESSION, CURLOPT_COOKIE, CURLOPT_COOKIEFILE, CURLOPT_COOKIEJAR
관련 권장 사항:
php를 사용하는 php 통해curl XML 데이터를 보내고 XML 데이터를 가져옵니다
위 내용은 PHP는 컬을 사용하여 시뮬레이션된 양식 제출 기능을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!