>백엔드 개발 >PHP 튜토리얼 >PHP는 컬을 기반으로 자동 응답 인터페이스를 호출합니다.

PHP는 컬을 기반으로 자동 응답 인터페이스를 호출합니다.

墨辰丷
墨辰丷원래의
2018-06-05 17:37:481675검색

이 글은 주로 컬 기반의 자동 응답 인터페이스를 호출하는 PHP를 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.

코드는 다음과 같습니다.

<?php 
header("Content-type: text/html; charset=utf-8"); 
$qq = &#39;&#39;;//QQ号 
$sid = &#39;&#39;;//填写sid的值 
$con = &#39;&#39;;//自定义内容,留空则使用simsimi 
$qzone = new qzone($qq,$sid); 
class qzone{ 
  private $sid =&#39;&#39;; 
  public function __construct($qq,$sid){ 
    $this->sid = $sid; 
    $url = "http://ish.z.qq.com/infocenter_v2.jsp?B_UID={$qq}&sid={$sid}&g_ut=2"; 
    $re = $this->fetch($url); 
    $this->getsaying($re); 
  } 
  private function fetch($url,$postdata=null){ 
    $ch = curl_init();//www.oicqzone.com 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 820)"); 
    if($postdata!=null) curl_setopt($ch, CURLOPT_POSTFIELDS,$postdata); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 20); 
    $re = curl_exec($ch); 
    curl_close($ch); 
    return $re; 
  } 
  private function getsaying($html){ 
    preg_match_all(&#39;/<\/a>:(.*?)评论\(\d\)<\/a>/&#39;,$html,$match); 
    foreach($match[0] as $k){ 
      if(strstr($k,&#39;评论(0)&#39;)){ 
        $k = str_replace(PHP_EOL, &#39;&#39;, $k); 
        $k = str_replace(&#39;
&#39;, &#39;&#39;, $k); 
        $k = html_entity_decode($k); 
        preg_match(&#39;/<\/a>:(.*?)<span class="txt-fade">/&#39;,$k,$content);//www.oicqzone.com 
        preg_match(&#39;/myfeed_mood.jsp\?sid=.*&B_(.*?)&t1_source/&#39;,$k,$data); 
        $content = preg_replace(&#39;/<img[^>]+>/&#39;, &#39;&#39;, $content[1]); 
        echo &#39;找到一条说说:&#39;.$content.&#39; 机器人的回复是:&#39;; 
        $data = &#39;B_&#39;.$data[1]; 
        $content = talk($content); 
        echo $content.&#39;<br />&#39;; 
        $this->postcomment($content,$data); 
        sleep(3); 
      } 
    } 
  } 
  private function postcomment($content,$data){ 
    $postdata = "content={$content}&{$data}&t1_source=1&feedcenter_pn=1&flag=1&type=all&channel=0&back=false&offset=0&ic=false&dl=null&to_tweet=0&submit=%E8%AF%84%E8%AE%BA"; 
    $this->fetch("http://blog30.z.qq.com/mood/mood_reply.jsp?sid={$this->sid}&g_ut=2",$postdata);   
  } 
} 
function talk($content){ 
    global $con; 
    if($con) return $con; 
  $content = str_replace(&#39; &#39;, &#39;&#39;, $content); 
    $ch = curl_init(); 
  curl_setopt($ch,CURLOPT_URL,&#39;http://www.simsimi.com/talk.htm&#39;); 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt($ch, CURLOPT_HEADER,1); 
  curl_setopt($ch, CURLOPT_NOBODY, false); 
  $rs = curl_exec($ch); 
  preg_match_all(&#39;/Set-Cookie: (.+)=(.+)$/m&#39;, $rs, $regs); 
  foreach($regs[1] as $i=>$k); 
  $cc=str_replace(&#39; Path&#39;,&#39;&#39; ,$k); 
  $cc=&#39;simsimi_uid=507454034223;&#39;.$cc; 
  $re = HTTPClient(&#39;http://www.simsimi.com/func/reqN?lc=ch&ft=1.0&req=&#39;.$content.&#39;&fl=http%3A%2F%2Fwww.simsimi.com%2Ftalk.htm&#39;,$cc); 
  $re = json_decode($re,true); 
  return $re[&#39;sentence_resp&#39;]; 
} 
function HTTPClient($url,$cookie){ 
  $ch = curl_init(); 
  curl_setopt($ch, CURLOPT_URL,$url); 
  curl_setopt($ch, CURLOPT_COOKIE,$cookie); 
  curl_setopt($ch, CURLOPT_HEADER, 0); 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
  curl_setopt($ch, CURLOPT_TIMEOUT, 30); 
  $re = curl_exec($ch); 
  curl_close($ch); 
  return $re; 
} 
?>

Summary: 위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다.

관련 권장사항:

php 페이징 원리, 페이징 코드, 페이징 클래스 생성 방법, 자세한 예제 예제

PHP 예약된 작업을 얻기 위해 WeChat access_token 메서드 예제 공유

PHP 구현을 얻기 위해 사용자 클라이언트 솔루션의 실제 IP

위 내용은 PHP는 컬을 기반으로 자동 응답 인터페이스를 호출합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.