In the third week of my new job, I have been working on .Net for more than 3 years, and I suddenly made a sharp turn to do PHP, drifting around the corner, at a speed of 180 Mai
Due to data integration, we have to use PHP to call WCF in the project
I’m confused, there is very little relevant information on the Internet. I posted a post on phpChina, but no one has responded yet. It seems that the blog garden is my forever home
Thanks to Master Dudu for his tireless reply and help, Thanks
==========The following is the text================
Using PHP to call WCF is very simple, all the process requires only two words, carefully
1. Preparation:
1.soap.dll
Check if there is ext in the PHP installation package php_soap.dll [It is automatically integrated by PHP and usually exists. If it does not exist, you can download it online]
2. Modify the php.ini file
After confirming the first step, continue to find the PHP configuration file. Since everyone’s environment is different, for example, some use an integrated development environment and install it with one click
Some students install them separately, so the location of php.ini may be different. The approach at this time is to use phpinfo() to view
After finding the file, open the file,
Found
;extension=php_soap.dll
This line, then remove the preceding semicolon.
If you don’t find this line, don’t worry, you can also add it manually.
3. Restart apach
2. Call WCF
After completing the above 123 steps, our preparations are complete, and the next step is to write the code
Assume that everyone knows WCF and has a basic knowledge of PHP
1. Publish a WCF for call
The following are two methods of WCF
public string SayHello()
{
return "Hello World";
}
public string GetData(string value)
{
return "You entered is : " value;
}
2.PHP side call
$wcfURL = 'http://192.168.3.102/Service1.svc?wsdl';//[This is the address of WCF]
$wcfClient = new SoapClient ( $wcfURL );
$result1 = $wcfClient->SayHello ();
print_r ( $result1 );
echo '
';
echo $result1->SayHelloResult;//This is where SayHello Result is written together. I don’t know the specific reason
The above PHP code should normally output as follows
stdClass Object ( [SayHelloResult] => Hello World )
Hello World
The first method was called successfully
We continue to call methods with parameters
At this time, you must use the WCF test client to test WCF
See my initial WCF method, the parameter is GetData(string value), and t is displayed here. This is because a colleague wrote it for me in WCF. He was lazy and wrote GetData( directly when defining it. string t). For this laziness, I paid a lot of code for a full 10 minutes!
Details link: http://q.cnblogs.com/q/71331/
The following is the modified PHP code
$args = array('t' => '312'); $wcfClient->GetData($args);<br />echo $result->GetDataResult;<br />echo '<br>';<br />print_r ( $result );
The normal output above should be
You entered is :312
stdClass Object ( [GetDataResult] => You entered is : 312)
The above completes the call of PHP to WCF. Of course, some friends will ask about more advanced ones, such as taking the entire class as a parameter, returning a class or something... .....To put it bluntly, I haven’t played to that advanced level yet..
Thank you again dudu
The following is a reference article: http://blog.csdn.net/love__coder/article/details/6067611
http://www.cnblogs.com/tianbang/archive/2012/05/07/2489149.html