PHP访问C#建立的Webservice

 更新时间:2016年11月25日 16:09  点击:2107



  最近遇到要使用PHP访问WebService。问了一下PHP程序员,用过的人少。自己配置。
  在XP上配置不成功,在Win2003上安装一个5.2,安装时记得选择支持Soap。安装完后把IIS里解释PHP的DLL路径改正确。
  把PHP.ini文件拷贝到Windows目录下,把Soap的Dll文件php_soap.dll拷贝到System32目录下。重启IIS。新建一个PHP文件。
1/* soap.php */
2/* 连接的是C#实现的Webservice */
3$client = new SoapClient( http://xx.xxx.xx.com/service.asmx?wsdl );
4$client->YourFunctionName(
5array(
6  "Parameter1"=>"Value1",
7  "Parameter2"=>"Value2") );
8print $client->YourFunctionNameResult;
9
  这样就得到结果了。
  SoapClient语法详见php.net。用它也可以建立PHP的WebService。
本文来自: 中国自学编程网(www.zxbc.cn) 详细出处参考:http://www.zxbc.cn/html/phpjq/1212264662844.html
 

最近研究php多线程的问题,发现中文资源少的可怜,仅有的几篇文章被转了又转,但文中内容价值有限。搜索过程中发现国外很多网站引用的一篇文章写的不错,所以翻译过来。

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明
问题:
假设你正在写一个基于多台服务器的php应用,理想的情况时同时向多台服务器发送请求,而不是一台接一台。
可以实现吗?
回答:

当有人想要实现并发功能时,他们通常会想到用fork或者spawn threads,但是当他们发现php不支持多线程的时候,大概会转换思路去用一些不够好的语言,比如perl。

其实的是大多数情况下,你大可不必使用fork或者线程,并且你会得到比用fork或thread更好的性能。

假设你要建立一个服务来检查正在运行的n台服务器,以确定他们还在正常运转。你可能会写下面这样的代码:

<?php
$hosts = array("host1.sample.com", "host2.sample.com", "host3.sample.com");
$timeout = 15;
$status = array();
foreach ($hosts as $host) {
    $errno = 0;
    $errstr = "";
    $s = fsockopen($host, 80, $errno, $errstr, $timeout);
    if ($s) {
        $status[$host] = "Connectedn";
        fwrite($s, "HEAD / HTTP/1.0rnHost: $hostrnrn");
        do {
            $data = fread($s, 8192);
            if (strlen($data) == 0) {
            break;
            }
            $status[$host] .= $data;
        } while (true);
        fclose($s);
    } else {
        $status[$host] = "Connection failed: $errno $errstrn";
    }
}
print_r($status);
?>

它运行的很好,但是在fsockopen()分析完hostname并且建立一个成功的连接(或者延时$timeout秒)之前,扩充这段代码来管理大量服务器将耗费很长时间。
因此我们必须放弃这段代码;我们可以建立异步连接-不需要等待fsockopen返回连接状态。PHP仍然需要解析hostname(所以直接使用ip更加明智),不过将在打开一个连接之后立刻返回,继而我们就可以连接下一台服务器。
有两种方法可以实现;PHP5中可以使用新增的stream_socket_client()函数直接替换掉fsocketopen()。




啊哈,终于用PHP实现了登录和注册拉,但是问题又来了,要求用ajax和php结合实现登录注册油烟机清洗
php登录源码:
下面是chklogin.php页面代码:
<?php
session_start();
$connect=mysql_connect("127.0.0.1","root","123");
if(!$connect)
{
die(''Could not connect: '' . mysql_error());
}
mysql_select_db(design,$connect);
$query="select * from ta_user where user_name =''".$name."''";
$result=mysql_query($query) OR die("Unable to connect to MySQL");
$rows=mysql_fetch_array($result);
if($rows[user_password]==$pwd)
{

header("Location:login_suss.php?name=".$name."");
}
else
{
echo "<table width=''235'' height=''61'' border=''0'' align=''center''>";
echo "<tr><td height=''29''>用户名或密码错误!</td></tr>";
echo "<tr><td height=''29''>请点击<a href=''javascrīpt:history.go(-1);''>这儿</a>重新输入!";
echo "</td></tr>";
echo "</table>";

}
?>

ajax:

<scrīpt language="javascrīpt">
function getXMLHTTPRequest()
{
var xRequest=null;
if (window.XMLHttpRequest)
{
xRequest=new XMLHttpRequest();
}
else if (typeof ActiveXObject != "undefined")
{
xRequest=new ActiveXObject("Microsoft.XMLHTTP");
}
return xRequest;
}
function Ajax(url)
{
AjaxObj = getXMLHTTPRequest();
AjaxObj.onreadystatechange = processRequest;
AjaxObj.open("post",url,true);
AjaxObj.setRequestHeader(''Content-type'',''application/x-www-form-urlencoded'');
AjaxObj.send("name"+name);

}
function processRequest()
{

if(AjaxObj.readyState == 4)
{
if(AjaxObj.status == 200)
{
if(AjaxObj.responseText != "")
{
document.getElementById("show").innerHTML="";
//alert(AjaxObj.responseText);

document.getElementById("show").innerHTML=AjaxObj.responseText;

}
}
else
{
alert("您所请求的页面有异常。
< 中文名称:PHP和MySQL Web开发_中文版
英文名称:SAMS PUBLISHING PHP AND MYSQL WEB DEVELOPMENT
版本:2005
发行时间:2005年
地区:美国
语言:普通话
简介


PHP 和 MySQL Web 开发,第三版 作者 Luke Welling, Laura Thomson

销量最好的 PHP 和 MySQL Web 开发教程已经升级,包括教学材料,编码都采用 MySQL 5, PHP 5 并且采用 PHP对象模型,你可以学习开发安全动态的WEB站点,整合和实现PHP脚本语言和MYSQL数据库系统。真实的例子和项目给你坚实的基础,开始制作你自己的WEB站点。

译者序
前言
作者简介
第一篇 使用PHP
第1章 PHP快速入门教程
第2章 数据的存储与检索
第3章 使用数组
第4章 字符串操作与正则表达式
第5章 代码重用与函数编写
第6章 面向对象的PHP
第7章 异常处理
第二篇 使用MySQL
第8章 设计Web数据库
第9章 创建Web数据库
第10章 使用MySQL数据库
第11章 使用PHP从Web访问MySQL数据库
第12章 MySQL高级管理
第13章 MySQL高级编程
第三篇 电子商务与安全性
第14章 运营一个电子商务网站
第15章 电子商务的安全问题
第16章 使用PHP和MySQL实现身份验证
第17章 使用PHP和MySQL实现安全事务
第四篇 PHP的高级技术
第18章 与文件系统和服务器的交互
第19章 使用网络函数和协议函数
第20章 日期和时间的管理
第21章 创建图像
第22章 在PHP中使用会话控制
第23章 其他有用的特性
第五篇 创建实用的PHP和MySQL项目
第24章 在大型项目中使用PHP和MySQL
第25章 调试
第26章 建立用户身份验证机制和个性化设置
第27章 创建一个购物车
第28章 创建一个内容管理系统
第29章 创建一个基于Web的电子邮件服务系统
第30章 创建一个邮件列表管理器
第31章 创建一个Web论坛
第32章 生成PDF格式的个性化文档
第33章 使用XML和SOAP来连接Web服务
第六篇 附录
附录A 安装PHP及MySQL
附录B Web资源 

<


《1》先安装MYSQL
运行MYSQL——5.20xxxxxx-win32.msi安装文件
1 next
2 选custom(自定义安装)
3点CHANGE 安装在D盘MYSQLMYSQL SERVER5.2目录下
4 NEXT
5 INSTALL
6 SKIP SIGN-UP                 NEXT
7 FINISH
8 NEXT
9 DETAILED CONFIGURATION       NEXT
10 DEVELOPER MACHINE           next
11 multfunctional database     next
12 会询问你数据库文件保存在哪个路径位置下  选择 确保在D盘下的MYSQL Datafiles中   next
13 DECISION SUPPORT(DSS)      NEXT
14 默认是3306 不是的话 改为3306  2个ENABLE选项都选上(如果发现移植过来的SQL应用程序有错误,则再次运行向导 把ENABLE STRICT MODE的选项取消
15 STANDED CHARACTER SET   选择LATIN -1字符集   NEXT
16 2个选项都选上  并且确认  SERVER NAME是  :MYSQL
17 MODIFY SECURTITY SETTINGS  下面的2个框添密码   自己设定(要牢记)
18 点击 execute
19 finish
20 在开始里面 选择 MYSQL 里面的MYSQL COMMAND LINE CLIENT
21 提示输入密码 连接成功后 表示安装成功   EXIT命令 退出

 

《2》安装apache 2 web 服务器
1 运行 apache_2.24-win32-x86-no_ssl.msi
2 NEXT
3 I ACCEPT
4 NEXT
5 第一个 user.com
第二个 web.user.com
第三个 webmaster@user.com
FOR ALL USER
NEXT
6 typical    next
7 默认目录   next
8 install
9 finish
10 安装完成 打开浏览器 输入http://localhost 回车  看页面上是否是  IT Works
  如果是 表示 APACHE WEB安装成功

 


《3》安装PHP5
1 运行PHP-5.2.1-WIN32.ZIP 解压到C:php目录下
2 将C:PHP目录下的php.ini-recommend文件名改为php.ini 复制到c:windows目录下
3 打开c:windowsphp.ini 文件  找到521行左右 或者用查找找到下面的代码参数
  extension_dir ="./"
修改为  extension_dir = "c:phpext"
4 为了与MYSQL数据库建立驱动连接  需要将c:php目录中的 libmysql.dll复制到c:windowssystem32
或者是c:winntsystem32目录中
5 在apache的安装目录中的CONF文件下  找到  Httpd.conf
 用文本编辑器打开
找到 #loadmodule ssl_module modules/mod_ssl_so
在下面加一行代码  没有#号
loadmodule php5_module "c:phpphp5apache2_2.dll"
6 找到addtype application/x-gizp.gz.tgz
在下面加一行代码
addtype application/x-httpd-
<
[!--infotagslink--]

相关文章

  • c# 三种方法调用WebService接口

    这篇文章主要介绍了c# 三种方法调用WebService接口的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
  • C#使用Http Post方式传递Json数据字符串调用Web Service

    这篇文章主要为大家详细介绍了C#使用Http Post方式传递Json数据字符串调用Web Service,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • c#动态调用Webservice的两种方法实例

    这篇文章介绍了c#动态调用Webservice的两种方法实例,有需要的朋友可以参考一下...2020-06-25
  • c#中WebService的介绍及调用方式小结

    这篇文章主要给大家介绍了关于c#中的WebService及其调用方式的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
  • 详解SpringBoot之访问静态资源(webapp...)

    这篇文章主要介绍了详解SpringBoot之访问静态资源(webapp...),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-09-14
  • mysql5.7 设置远程访问的实现

    这篇文章主要介绍了mysql5.7 设置远程访问的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-08
  • vue设置全局访问接口API地址操作

    这篇文章主要介绍了vue设置全局访问接口API地址操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-08-14
  • js判断手机访问或者PC的几个例子(常用于手机跳转)

    js判断手机或者PC的例子我们在几乎所有网站都会有这段代码了,现在手机流量与pc差不多了,下面来看两段js判断手机或者PC例子吧...2015-12-17
  • C#如何访问共享文件夹或者磁盘

    这篇文章主要为大家详细介绍了C#访问共享文件夹或者磁盘,需要用户名密码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • DTO 实现 service 和 controller 之间值传递的操作

    这篇文章主要介绍了DTO 实现 service 和 controller 之间值传递的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-22
  • docker端口映射及外部无法访问问题

    这篇文章主要介绍了docker端口映射及外部无法访问问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-01-19
  • C#访问网络共享文件夹的方法

    这篇文章主要为大家详细介绍了C#访问网络共享文件夹的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • 浅谈PHP调用Webservice思路及源码分享

    方法一:直接调用复制代码 代码如下:<? /******************************************************************************/ /* 文件名 : soapclient.php /* 说 明 : WebService接口客户端例程 /****************...2014-06-07
  • C# 创建、部署和调用WebService简单示例

    这篇文章主要为大家详细介绍了C# 创建、部署和调用WebService的简单示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
  • C# Soap调用WebService的实例

    下面小编就为大家带来一篇C# Soap调WebService的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-06-25
  • c#动态改变webservice的url访问地址

    这篇文章主要介绍了c#动态改变webservice的url访问地址,需要的朋友可以参考下...2020-06-25
  • Nginx访问日志及错误日志参数说明

    这篇文章主要介绍了Nginx访问日志及错误日志参数说明,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-14
  • Spring boot 无法注入service问题

    这篇文章主要介绍了Spring boot 无法注入service问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-10-09
  • WebService 的简单封装接口调用方法

    这篇文章主要介绍了WebService 的简单封装接口调用方法,主要是通过简单的sql语句来查询数据库,从而返回dataset,十分简单实用,有需要的小伙伴可以参考下。...2020-06-25
  • JAVA调用SAP WEBSERVICE服务实现流程图解

    这篇文章主要介绍了JAVA调用SAP WEBSERVICE服务实现流程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-11