xampp开启xampp Mysql数据库等的远程访问例子
在访问XAMPP所建立的Mysql数据库时,若出现
New XAMPP security concept:
Access to the requested directory is only available from the local network.
This setting can be configured in the file “httpd-xampp.conf”.
则一般可以按一下步骤进行解决~
1、关闭数据库所在服务器的防火墙
2、修改配置文件 httpd-xampp.conf
打开httpd-xampp.conf(/xampp/apache/conf/extra/httpd-xampp.conf)
用记事本打开该文件,将所有Deny from all这一行注释掉,即改为 #Deny from all
3、重启服务器
注意:我这里只是用 xampp 作为本地测试用,正式网站就不要那么随便设置了!
PHP5中的这个SOAP扩展目的是为了实现PHP对Web services的支持。与其它实现PHP对Web services的支持的方法不同,SOAP扩展是用C写的,因此它比其它方法具有速度优势
SOAP扩展支持以下规范。
* SOAP 1.1
* SOAP 1.2
* WSDL 1.1
SOAP扩展主要用来处理RPC形式的Web services。不过,你也可以使用文本形式的WSDL文件配合WSDL模式的服务端和客户端。
一、Linux下安装soap模块
安装完php后最好保留当时安装的文件,比如usr/local/php-5.3.2
查看soap模块是否安装的办法:在php的安装目录下运行php -m来查看
如:/usr/local/php/bin/php -m |grep ‘soap’
如果没有安装,则进入php的安装源文件夹
cd php-5.3.2/ext/soap
进入后在此运行phpize命令
/usr/local/php/bin/phpize
查看信息是否有出错,没有出错的话运行如下命令:
./configure –with-php-config=/usr/local/php/bin/php-config –enable-soap
然后是安装编译
make
最后是安装
make install
安装好之后会提示soap.so文件的保存路径
编译后的soap.so文件保存在了/usr/local/php/lib/php/extensions/no-debug-non-zts-20111222目录下,接着修改php.ini文件
手工修改:查找/usr/local/php/etc/php.ini中的extension_dir = “./”,默认是注释掉的
修改为extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-20111222/”
并在此行后增加如下,然后保存:
extension = “soap.so”
重新启动apache,在运行php -m就已经能看到扩展的soap模块了。
如果还要安装扩展别的模块可以以此类推。
二、Windows下安装soap模块
在Windows下可以通过修改php.ini来选择当PHP启动时加载哪些扩展库。也可以在脚本中通过使用 dl()来动态加载。PHP扩展库的DLL文件都具有php_前缀。很多扩展库都内置于Windows版的PHP之中。这意味着要加载这些扩展库不需要额外的DLL文件和extension配置指令。Windows下的PHP扩展库列表列出了需要或曾经需要额外PHP DLL文件的扩展库。
要在php.ini中启用某扩展库,需要去掉该行extension=php_*.dll前的注释符号,将想要加载的扩展库前的分号(;)删除即可。
启用php_soap.dll扩展库
// 将这一行
;extension=php_soap.dll
// 改成这样
extension=php_soap.dll
Note: 如果运行服务器模块版的PHP,在修改了php.ini之后别忘了重新启动web服务器以使其改动生效。
下面是内置的扩展库列表:
php_bz2.dll bzip2压缩函数库
php_calendar.dll 历法转换函数库
php_crack.dll 密码破解函数库
php_ctype.dll ctype家族函数库
php_curl.dll CURL,客户端URL库函数库
php_dba.dll DBA:数据库(dbm 风格)抽象层函数库
php_dbase.dll dBase函数库
php_dbx.dll dbx函数库
php_domxml.dll DOM XML函数库
php_dotnet.dll .NET函数库
php_exif.dll EXIF函数库
php_fbsql.dll FrontBase函数库
php_fdf.dll FDF:表单数据格式化函数库
php_filepro.dll filePro函数库
php_ftp.dll FTP函数库
php_gd.dll GD库图像函数库
php_gd2.dll GD库图像函数库
php_gettext.dll Gettext函数库
php_hyperwave.dll HyperWave函数库
php_iconv.dll ICONV字符集转换
php_ifx.dll Informix函数库
php_iisfunc.dll IIS 管理函数库
php_imap.dll IMAP,POP3 和 NNTP 函数库
php_ingres.dll Ingres II函数库
php_interbase.dll InterBasefunctions
php_java.dll Java函数库
php_ldap.dll LDAP函数库
php_mbstring.dll 多字节字符串函数库
php_mcrypt.dll Mcrypt 加密函数库
php_mhash.dll Mhash函数库
php_mime_magic.dll Mimetype函数库
php_ming.dll Ming函数库(Flash)
php_msql.dll mSQL函数库
php_mssql.dll MSSQL函数库
php_mysql.dll MySQL函数库
php_mysqli.dll MySQLi函数库
php_oci8.dll Oracle 8函数库
php_openssl.dll OpenSSL函数库
php_overload.dll 对象重载函数库
php_pdf.dll PDF函数库
php_pgsql.dll PostgreSQL函数库
php_printer.dll 打印机函数库
php_shmop.dll 共享内存函数库
php_snmp.dll SNMP函数库
php_soap.dll SOAP函数库
php_sockets.dll Socket函数库
php_sybase_ct.dll Sybase函数库
php_tidy.dll Tidy函数库
php_tokenizer.dll Tokenizer函数库
php_w32api.dll W32api函数库
php_xmlrpc.dll XML-RPC函数库
php_xslt.dll XSLT函数库
php_yaz.dll YAZ函数库
php_zip.dll Zip文件函数库
php_zlib.dll ZLib压缩函数库
SOAP模块的使用方法
首先我们来了解一下SOAP扩展的三个主要对象:
1.SoapServer
代码如下 | 复制代码 |
SoapServer用于创建php服务器端页面时定义可被调用的函数及返回响应数据。创建一个NON-WSDL模式的SoapServer对象的语法格式如下: $arr是SoapServer的属性信息,是一个数组。 $functionName是允许客户端调用的方法名称。如果所有的方法都允许调用,可使用下面的方法: SoapServer对象的handle方法用来处理用户输入并调用相应的函数,最后返回给客户端处理的结果。使用方法如下: |
$soapRequest是一个可选参数,用来表示用户的请求信息。如果不指定$soapRequest,则表示服务器将接收用户的全部请求。
2.SoapClient
SoapClient用于调用远程服务器上的SoapServer页面,并实现了对相应函数的调用,创建一个SoapClient对象的方法如下:
代码如下 | 复制代码 |
$client = new SoapClient(null,$arr); |
其中,参数$arr与SoapServer相同。穿件SoapClient对象后,调用服务器端的方法如下:
代码如下 | 复制代码 |
$client->functionName($p); |
functionName()为服务器端待调用的函数名,$p 为参数。
3.SoapFault
SoapFault用于生成soap访问过程中可能出现的错误。创建一个SoapFault对象的方法为:
代码如下 | 复制代码 |
$fault = new SoapFault($code,$msg); |
参数$code为用户定义的错误代码,$msg为用户定义的错误信息。soapFault对象会在服务器端页面出现错误时自动生成,或者通过用户自行创建SoapFault对象时生成。对于Soap访问时出现的错误,客户端可通过捕捉SoapFalut对象来获得相应的错误信息。在客户端捕获SoapFault对象后,可以通过下面的代码获得错误代码和错误信息:
代码如下 | 复制代码 |
$fault->code; //错误代码 |
以上就是PHP SOAP模块主要的三个对象介绍,下面我们通过一个简单的实例,帮助大家理解一下soap模块的使用方法。
4.PHP SOAP实例(NON-WSDL模式)
服务器(server)端代码server.php:
代码如下 | 复制代码 |
<?php
|
客户端(client)代码:
代码如下 | 复制代码 |
<?php |
直到最近,要做一个网页小偷程序的时候才发现file_get_content已经完全不能满足需求了。我觉得,在读取远程内容的时候,file_get_content除了使用比curl便捷以外,其他都没有curl好。
php中curl和file_get_content的一些比较
主要区别:
学习才发现,curl支持很多协议,有FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE以及LDAP,也就是说,它能做到很多file_get_content做不到的事情。curl在php可以实现远程获取和采集内容;实现PHP网页版的FTP上传下载;实现模拟登陆;实现接口对接(API),数据传输;实现模拟Cookie;下载文件断点续传等等,功能十分强大。
了解curl一些基本的使用后,才发现其实并不难,只不过记住里面一些设置参数,难弄一点,但是我们记住几个常用的就可以了。
开启curl:
因为PHP默认是不支持curl功能的,因此如果要用curl的话,首先需要在php.ini中开启该功能,即去掉 ;extension= php_curl.dll 前面的分号,然后保存后重启apache/iis就好了。
基本语法:
代码如下 | 复制代码 |
$my_curl = curl_init(); //初始化一个curl对象 curl_setopt($my_curl, CURLOPT_URL, "http://www.111cn.net"); //设置你需要抓取的URL curl_setopt($my_curl,CURLOPT_RETURNTRANSFER,1); //设置是将结果保存到字符串中还是输出到屏幕上,1表示将结果保存到字符串 $str = curl_exec($curl); //执行请求 echo $str; //输出抓取的结果 curl_close($curl); //关闭url请求 |
版本一:
for($i=ord('a'); $i<ord('z'); $i++) {
echo chr($i);
}
版本二(与第一版类似使用ascii):
for($i=0; $i<26; $i++) {
echo chr($i+97);
}
版本三:
echo implode('', range('a', 'z'));
版本四(高智商坑爹版):
for($i='a'; $i!='aa'; $i++) {
echo $i;
}
版本五:
for($i='a'; strlen($i)<2; $i++) {
echo $i;
}
前两个循环很容易理解,a到z每个字母的ascii码值是递增不变的,所以这两个方法就是通过ascii值去做循环计算,用到了php内置的ord()和chr()函数。
第三个方法使用php内置的range()函数生成一个从a到z递增的数组,步长为1,之后用implode函数将数组合并成字符串。
后两个方法就是本篇标题中所要讲的”奇怪现象”。
从理论上来讲,咱们用for($i=’a'; $i<'z';$i++)的写法也很正确,合情合理。。。但现实是残酷的,试一下就会发现得到的并不是想要结果。前面a到z是出来了,后面又输出一长串字符。
如果在for循环中每次输出一个换行再观察的话就会发现一个规则,a-z, 下一次输出了aa、ab、ac...az,然后是ba、bb、bc...bz.... 也就是php在给z加一后自动“进位”了。php一个奇特的26进制。当"当前位"的z加1后会向它前面的一位上增加1,然后当前位变为a。'z'++ => ‘aa’,’az’=>’ba’,’zz’=>’aaa’….
注意的两点:1.这种规律不能用于判断。如’z'<‘aa’是false。php中字符串比较时只会由左至右依次比较。2.目前只发现在”前自加”或”前自减”时会出现此种规律,参与其它算术运算时php将纯字符串强转为0。
代码如下 | 复制代码 |
<?php $dir="images/";//定义路径 $dir_res=opendir($dir);//打开目录 $fileFormat=array(0=>".jpg",1=>".gif",2=>".png",3=>".bmp");//图片格式 while(false !== ( $filen=readdir($dir_res) ) ) { for($i=0;$i<count($fileFormat);$i++) { if(substr($filen,strpos($filen,"."))==$fileFormat[$i]) { //echo '<div class="inner"><img src="'.$dir.$filen.'" width="120" height="90" border="0" align="absmiddle" onmouseover="setImgBorder(this)" onmouseout="clearBorder(this)" style="margin:15px;" onclick="goToBigPage(this)" /></div>'; $img_arr[] = $dir.$filen; //存入数组 break ; } www.111cn.net } } closedir($dir_res); //print_r( json_encode($img_arr) );//转json格式 $s=json_encode($img_arr); echo $s; ?> |
script代码
代码如下 | 复制代码 |
<script> |
相关文章
- 操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
- 本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
- 这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
- 这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
- 在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
- C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
- 通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
- 某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
- mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
- 这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
- 很多集成的PHP环境(PHPnow WAMP Appserv等)自带的MySQL貌似都没有开启MySQL的严格模式,何为MySQL的严格模式,简单来说就是MySQL自身对数据进行严格的校验(格式、长度、类型等),比如一个整型字段我们写入一个字符串类型的数...2013-10-04
- yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
- 1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
- 这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
- 这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
- “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
- 这篇文章主要介绍了node.js如何操作MySQL数据库,帮助大家更好的进行web开发,感兴趣的朋友可以了解下...2020-10-29
- 对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密,下面通过本文给大家介绍C#连接加密的Sqlite数据库的方法,感兴趣的朋友一起看看吧...2020-06-25
- 这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16