星期四, 六月 14

php关于数组

我比较菜,学php是从认识dedecms开始的,现在给公司开发一套门户网站,只有自己写程序了 ,这么晚了我还在看书,虽然很费劲,我一步一步来
1.数组
数组十一个可以存储一组或者一系列数值的变量。
$products=array('Tires','Oil','Spark Plugs');
2.访问数组的内容
使用变量名称和关键字或者索引的组合来访问其内容。使用$products[0],$products[1],$products[2]来访问其内容
echo "$products[0],$products[1],$products[2]";
与$products=array('Tires','Oil','Spark Plugs');等价的表示方法可以这样
$products[0]='Tires';
$products[1]='oil';
$products[2]='spark Plugs';
3.使用循环访问数组,常用在读文章标题部分
for循环 和while循环最常用
$products=array('Tires','Oil','Spark Plugs');
echo "$products[0],$products[1],$products[2]";
这个语句打印出来可以用循环语句就显的简单
for ($i=0; $i<3; $i++)
echo "$products[$i]";
或者我用while语句 ,这里复习一下循环语句的语法
$i=0;
while ($i<3) {
echo "$products[$i]"
$i++;
}
未完 先睡觉!

星期日, 五月 27

网络真小!

这个世界真小,网络也一样,好比你在街头闲逛的时候,有时候会遇见你曾见见过的人,在网络世界里也一样的,有时候你瞎逛的时候也会遇见曾经的遇见的网友,去年在网上买了一个人的空间,从此以后在没有联系,今天偶然在一个qq群讨论技术问题的时候,又碰到了他,难道这个世界就如此的渺小,真可笑!

Microsoft JET Database Engine error '80004005' 与服务器IIs有关?

今天在网上搞了一个论坛程序,第一次出现这样的一个错误 Microsoft JET Database Engine error '80004005' Operation must use an updateable query. ,我找了很多原因,找不到,后来 在排除程序的错误后,唯一不同的是服务器与测试的本机系统不一样,服务器装win2003的是英文操作系统,产生这个问题的原因:这套论坛程序是中文环境下开发的,所以Access数据库的排序方法是按照中文的。而我们的服务器是运行的英文操作系统。解决方法:用Microsoft Office Access 2003打开数据库文件>工具>选项>常规选项卡>新建数据库排序次序下拉菜单>把Access得排序方法该成general(常规),然后新建一个access数据库,把原来的导入到新的,再上传新的数据库.搞定!
后来在上传图片的时候又出现Request object error 'ASP 0104 : 80004005'问题,排除程序错误后,又是iis的问题,找了半天资料,终于找到了问题的解决办法,如下方法:Request object error 'ASP 0104 : 80004005'IIS 6 出于安全考虑, 默认最大请求200K(也即最大提交数据限额为200KByte,204800Byte). 解决办法: 1. 关闭 IIS Admin Service 服务 2. 打开 \Windows\system32\inesrv\metabase.xml 3. 修改 AspMaxRequestEntityAllowed的值为20480000, 默认为 204800 4. 启动 IIS Admin Service 和world wide web 服务

一切Ok! 搜索引擎真好!!

php中的isset()函数

今天看到网站上用到isset函数,了解一下 看怎么用
函数:isset() -------------------------------------------------------------------------------- 变量处理函数库 isset 判断变量是否已配置。 语法: int isset(mixed var); 返回值: 整数 函数种类: PHP 系统功能 内容说明 本函数用来测试变量是否已经配置。若变量已存在则返回 true 值。其它情形返回 false 值。 使用范例

如何使用图片作重置按钮

今天给公司作网页,有一个重置按钮,美工作出来的是一个图片,我最开始加入了 一个代码,发现点击以后效果是提交按钮,这个问题怎么解决呢 ,我在网上找了资料,网上也有人讨论过这个问题,看到这个代码,试验了一下,完全可以解决,不错 主要是给按钮一个方法,明白了图片按钮 必须要加入方法,form标签不会对他默认方法。ok!

星期三, 五月 23

soap 之 nusoap 的使用

soap 之 nusoap 的使用
今天不知道为什么想起了soap 这个东西,然后就弄了下,在php上使用的是nusoap。 一些基本的使用,高深的麻烦您自己看手册去这个软件的下载在 http://dietrich.ganx4.com/nusoap 下面我会加上附件。
说说这个东西,我曾经以为能用这个东西完成跨域名登陆,但是今天发现好象实现不了,到底在什么地方可以应用上,也很茫然,希望知道在那里应用的朋友指点下,谢谢了!
关于soap的具体的原理,什么的我就不多说,想知道的你网上自己找下,基本上就是http协议与xml的应用。先说下个这个东西的实现原理,基本上就向服务器发送请求实现一个服务器上的函数运行,然后得到返回值。值,我感觉应该是string或者数组,或者int值,应该不能用对象的。
先看一个基本的使用很简单的这是 soap_server.php 文件 这个在网络上能找的到
CODE:[Copy to clipboard]configureWSDL("test_wsdl", "");$server->wsdl->schemaTargetNamespace="urn:test_wsdl"; $server->register("hello", //方法名 array( "name"=>"xsd:string", "call"=>"xsd:string", "tele"=>"xsd:string", ),//输入参数 array( "return"=>"xsd:string", ),//输出参数 "urn:test_wsdl",//名字空间"urn:test_wsdl#hello",//名字空间#要操作的函数名 "rpc",//style "encoded",//use"This is test."//说明 ); //test方法实现 function hello($name,$call,$tele) { if($name==""){ return new soap_fault("Client","","Must supply a valid name."); } return "Hello, " . $name." ".$call." ".$tele; } //Use the request to (try to) invoke the service $HTTP_RAW_POST_DATA=isset($HTTP_RAW_POST_DATA)?$HTTP_RAW_POST_DATA:""; $server->service($HTTP_RAW_POST_DATA);?>在你写完了以后,在浏览器里输入url,应该会看到一个页面,根据那个页面分析下,会有很大的收获,client端要根据上面的使用这个是soap _client.php
CODE:[Copy to clipboard]"sera1ph.Liu", "call"=>"123456", "phone"=>"12345678", ); //生成客户端对象,注意下面的url ?wsdl是必须加的前面为服务端的文件$client=new soapclient("http://localhost/nusoap/soap_server.php?WSDL");//呼叫/使用 那个函数,注意名字空间的区分$return=$client->call('hello',$para,"http://localhost/soap/test_wsdl","test_wsdl#hello"); print_r($return);?>上面是一个很基本的使用,我想不过多的说了
下面看一个比较复杂的使用
CODE:[Copy to clipboard]function logout($logout_userName)//注销用户名(退出登录){$flag=$logout_userName;
if($logout_userName=="" $logout_userName!="叁石") { $flag = -1; }
return $flag;}
$soap = new soap_server();//参数一,服务名字,也就是server文件//参数二,名字空间$soap->configureWSDL('AuthorityServicewsdl', 'urn:AuthorityServicewsdl');//参数设置空间$soap->wsdl->schemaTargetNamespace = 'urn:AuthorityServicewsdl';//上面跟原来的基本一样,但是大家注意声明的时候发生了变化//下面是设置一个返回的数组类型//参数一,为你自己命名的数据类型//参数二,混合类型,不用管//参数三。为结构体,或者数组(array)//参数四,按照什么排序,有三个选择all(全部)sequence(次序)choice(选择)//参数五,基本约束//注意:上面5个我们不用改变//参数6,最重要的参数,也就是我们返回的类型想对应//返回数组下标 =>array('name'=>"数组下标",'type'=>"xsd:对应的类型") //类型基本包括 string,int, date,boolean 这几种形式$soap->wsdl->addComplexType('userInfo','complexType','struct','all','', array( 'userName' => array('name'=>'userName', 'type'=>'xsd:string'), 'randomNum' => array('name'=>'randomNum', 'type'=>'xsd:string') ) );
//这里是注册函数//参数一,函数名//参数二,是这个函数接受的参数,注意指定类型//参数三,为返回的值,不一定名字非叫return,叫其他的也可以,注意返回的类型,//我这里是返回我自己定义的类型 tns:userInfo 如果为基本的类型为 xsd:string 这个样子//其他的参数,只要统一就可以了,尤其是名字空间跟 soapaction$soap->register('validate', // method name array('userName' => 'xsd:string','randomNum' => 'xsd:string'), // input parameters //array('return' => 'xsd:string'), // output parameters array('return' => 'tns:userInfo'), 'urn:AuthorityServicewsdl', // namespace 'urn:AuthorityServicewsdl#validate', // soapaction 'rpc', // style 'encoded', // use '验证用户名及随机数' // documentation);
$soap->register('refresh', // method name array('refresh_userName' => 'xsd:string','refresh_randomNum' => 'xsd:string'), // input parameters //array('return' => 'xsd:string'),// output parameters array('return' => 'tns:userInfo'), 'urn:AuthorityServicewsdl', // namespace 'urn:AuthorityServicewsdl#refresh', // soapaction 'rpc', // style 'encoded', // use '按时地方' // documentation);
$soap->register('logout', // method name array('logout_userName' => 'xsd:string'), // input parameters array('return' => 'xsd:int'), // output parameters 'urn:AuthorityServicewsdl', // namespace 'urn:AuthorityServicewsdl#logout', // soapaction 'rpc', // style 'encoded', // use '退出登录' // documentation);//大家可能对 $HTTP_RAW_POST_DATA 这个变量比较疑惑,我们没有定义,怎么出来的呢//我也有这样的想法,不过我看了下手册解释是 usually is the value of $HTTP_RAW_POST_DATA //所以大家就别管它了,就这样使用吧$soap->service($HTTP_RAW_POST_DATA);?>我们现在看下 客户端的使用
CODE:[Copy to clipboard]$client=new soapclient('http://localhost/nusoap/samples/server/AuthorityService.php?wsdl',true);$err = $client->getError();
$username = "叁石";$randomnum = "d8A9";$params1 = array('userName'=>$username,'randomNum'=>$randomnum);$reversed = $client->call('validate',$params1);//此为返回值//echo "注册值
";print_r ($reversed);echo "
";
$refresh_username = "叁石";$refresh_randomnum = "d8A9";$params1 = array('refresh_userName'=>$refresh_username,'refresh_randomNum'=>$refresh_randomnum);$reversed = $client->call('refresh',$params1);//echo "取得值
";print_r ($reversed);echo "
";
$logout_username = "叁石";$params1 = array('logout_userName'=>$logout_username);$reversed = $client->call('logout',$params1);echo $reversed;?>这个就不用多说了,一看应该就明白了 是数组返回的我使用print_r输出了关于这个功能,我说下我做的实验首先我用set方法设置了下一个公共变量的值,当用get取得的时候,值为空说明,每次是建立一个新的访问所以值没有保留测试2,我使用cookie 设置的值,在get方法的时候,没有取得说明:没闹明白原因测试3,使用session 在get方法的时候,也没有取得值说明,没闹明白但是取得文件或者数据库连接取得值是没有问题的,也就是可以取得固定介质中的值,文件或者数据库
这个东西到底能干什么还真不清楚,我想是可以完成,2种不同语言的交接,比如 php与asp与jsp的交互也许有人茫然了,我这里丢了一个感念,soap返回的是一个流,所有可以当作文本流来对待,使用socket取得。关于nusoap的使用就到这里了,我不大去弄它的具体原理了,能够使用就够了!所以没有对nusoap的代码做分析