This article mainly introduces the introduction of curl requesting other interfaces in the PHP interface. It has a certain reference value. Now I share it with you. Friends in need can refer to it.
Today I encountered a need to write The requirements for curl are as follows:
System A (shopping system) and system B (answering system) of the same application are independent of each other, and all user data exists in the database of system A.
Now we are in an operation in system B. We need to verify in system B whether the person currently requesting is a member of this application. To verify whether he is a
member of this application, of course we need to get the current user's Compare the logo to the database, but the database is in system A. At that time, I thought of curl and drew a picture:
In fact, to put it bluntly, it is to simulate http requests. , because unlike the front-end, http requests can be initiated directly through ajax or other methods, and the back-end has to
simulate this request through curl in order to achieve the same effect as the front-end.
So Baidu searched for a PHP curl method and encapsulated it:
public static function curl_post($url,$array){ $curl = curl_init(); //设置提交的url curl_setopt($curl, CURLOPT_URL, $url); //设置post方式提交 curl_setopt($curl, CURLOPT_POST, 1); //设置post数据 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($array)); //执行命令 $data = curl_exec($curl); //关闭URL请求 curl_close($curl); //获得数据并返回 return $data; }
Then I happily called it:
$array = array('open_id'=>$openid); $url = dr_var("verify"); $res = $this->curl_post($url,$array);
Here is a verify interface that simulates requesting system A in system B interface to review the user identity, and then determines system B based on the review results
What the interface returns to the outside world.
When I finally ran the B system interface, I found that in addition to the return value of the B system interface, it was also mixed with the return value of the A system interface (verify).
It was very confusing for a while. I was puzzled. I looked around to see what was wrong with the return value of the verify interface. exit(json_encode(array("a"=>a))) didn't work, so I replaced it with
return array("a" =>a); Still didn’t work, so I changed it to var_dump(array("a"=>a)); and it still didn’t work! ! ! Still returns the return values of the two interfaces.
Later, later, I debugged the encapsulated curl function sentence by sentence, and found that the value of the verify interface had been printed directly in the red letter above,
So Baidu keyword: curl is not direct Output; blah blah, a bunch of related information came out. I opened one at random and found the answer. It turned out that curl master
set a parameter:
//获取数据不直接输出curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
In the end, the problem was solved, and it can be regarded as a small knowledge point about the curl parameter setting of PHP~~~
The above is the entire content of this article, I hope it will be helpful to everyone's learning, more related Please pay attention to the PHP Chinese website for content!
Related recommendations:
How to verify the legality of IP in PHP
##How to implement simulated multiple inheritance in PHP
The above is the detailed content of Introduction to curl requesting other interfaces in the php interface. For more information, please follow other related articles on the PHP Chinese website!