xampp开启xampp Mysql数据库等的远程访问例子

 更新时间:2016年11月25日 15:41  点击:1790
下面一起来看个在学习环境下的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 作为本地测试用,正式网站就不要那么随便设置了!

pHP的SOAP扩展可以用来提供和使用Web services。换句话说,PHP开发者可以利用这个PHP扩展来写他们自己的Web services,也可以写一些客户端来使用给定的Web services。

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对象的语法格式如下:
$soap = new SoapServer(null,$arr);

      $arr是SoapServer的属性信息,是一个数组。
      SoapServer对象的addFunction方法是用来声明哪个函数可以被客户端调用,使用方法如下:
$soap->addFunction($functionName);

$functionName是允许客户端调用的方法名称。如果所有的方法都允许调用,可使用下面的方法:
$soap->addFunction(SOAP_FUNCTIONS_ALL);

      SoapServer对象的handle方法用来处理用户输入并调用相应的函数,最后返回给客户端处理的结果。使用方法如下:
$soap->handle([$soapRequest]);

      $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;  //错误代码
$fault->msg;   //错误信息

      以上就是PHP SOAP模块主要的三个对象介绍,下面我们通过一个简单的实例,帮助大家理解一下soap模块的使用方法。
4.PHP SOAP实例(NON-WSDL模式)

服务器(server)端代码server.php:

 代码如下 复制代码

<?php
    $arr = array(
        'location' => 'http://192.168.187.132/server.php',
        'uri'      => 'http://192.168.187.132/'
    ); 
    $soap = new SoapServer( null ,$arr );
   
    $soap->addFunction(SOAP_FUNCTIONS_ALL);  //允许客户端调用所有的方法
    $soap->handle();


    function a(){
        return '李坏博客';
    }  
    function b($b){
        return $b;
    }  

           

客户端(client)代码:

 代码如下 复制代码

<?php
    $arr = array(
        'location' => 'http://192.168.187.132/server.php',
        'uri'      => 'http://192.168.187.132/'
    ); 
    $soap = new SoapClient( null, $arr );
   
    echo $soap->a(),'<br />';
    echo $soap->b('b');
?>

抓取远程内容,之前一直都在用file_get_content函数,其实早就知道有curl这么一个好东西的存在,但是看了一眼后感觉使用颇有些复杂,没有file_get_content那么简单,再就是需求也不大,所以没有学习使用curl。

直到最近,要做一个网页小偷程序的时候才发现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请求

下面来给大家整理卫些关于php实现a到z及其中的”奇怪现象”例子,希望文章对各位会有所帮助。

版本一:
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。

今天帮助一个客户做一上企业网站,发现企业网站做好之后它准备了几百张图片让我上传,这个对于我来讲非常的不想做了,但后来发现可以直接使用程序读取目录然后保存到mysql中就可以解决了,下面我只找到一个函数关于mysql操作部份呆会我再写。
 代码如下 复制代码

<?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>
$(function(){
    $.ajax({
        url: 'img.php',
        type: 'POST',
        dataType: 'JSON',
        data: {param1: 'value1'},
    })
    .done(function(data) {
        //console.log("success");
        for(attr in data) {
 
            $("body").append("<img src="+ data[attr] +" />");
        }
    })
    .fail(function() {
        console.log("error");
    })
    .always(function() {
        console.log("complete");
    });
     
}) 
</script>

[!--infotagslink--]

相关文章

  • PHP 数据库缓存Memcache操作类

    操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以实现了,下面整理了...2016-11-25
  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • C#从数据库读取图片并保存的两种方法

    这篇文章主要介绍了C#从数据库读取图片并保存的方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下...2021-01-16
  • Intellij IDEA连接Navicat数据库的方法

    这篇文章主要介绍了Intellij IDEA连接Navicat数据库的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借价值,需要的朋友可以参考下...2021-03-25
  • 在数据库里将毫秒转换成date格式的方法

    在开发过程中,我们经常会将日期时间的毫秒数存放到数据库,但是它对应的时间看起来就十分不方便,我们可以使用一些函数将毫秒转换成date格式。 一、 在MySQL中,有内置的函数from_unixtime()来做相应的转换,使用如下: 复制...2014-05-31
  • C#操作本地文件及保存文件到数据库的基本方法总结

    C#使用System.IO中的文件操作方法在Windows系统中处理本地文件相当顺手,这里我们还总结了在Oracle中保存文件的方法,嗯,接下来就来看看整理的C#操作本地文件及保存文件到数据库的基本方法总结...2020-06-25
  • 如何解决局域网内mysql数据库连接慢

    通过内网连另外一台机器的mysql服务, 确发现速度N慢! 等了大约几十秒才等到提示输入密码。 但是ping mysql所在服务器却很快! 想到很久之前有过类似的经验, telnet等一些服务在连接请求的时候,会做一些反向域名解析(如果...2015-10-21
  • MySQL快速复制数据库数据表的方法

    某些时候,例如为了搭建一个测试环境,或者克隆一个网站,需要复制一个已存在的mysql数据库。使用以下方法,可以非常简单地实现。假设已经存在的数据库名字叫db1,想要复制一份,命名为newdb。步骤如下:1. 首先创建新的数据库newd...2015-10-21
  • mysqldump命令导入导出数据库方法与实例汇总

    mysqldump命令的用法1、导出所有库系统命令行mysqldump -uusername -ppassword --all-databases > all.sql 2、导入所有库mysql命令行mysql>source all.sql; 3、导出某些库系统命令行mysqldump -uusername -ppassword...2015-10-21
  • Mysql数据库错误代码中文详细说明

    1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数据库文件导致删除数据库失败1010:不能删除数据目录导致删除数据库失败1011:删除数据库...2013-09-23
  • c#异步读取数据库与异步更新ui的代码实现

    这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧...2020-06-25
  • 如何开启mysql中的严格模式

    很多集成的PHP环境(PHPnow WAMP Appserv等)自带的MySQL貌似都没有开启MySQL的严格模式,何为MySQL的严格模式,简单来说就是MySQL自身对数据进行严格的校验(格式、长度、类型等),比如一个整型字段我们写入一个字符串类型的数...2013-10-04
  • Yii2.0高级框架数据库增删改查的一些操作

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2使用中的一些基本的增删改查操作。 User::find()->all(); //返回所有用户数据; User::findOne($id); //返回 主键...2015-11-24
  • MYSQL数据库使用UTF-8中文编码乱码的解决办法

    1.用phpmyadmin创建数据库和数据表 创建数据库的时候,请将“整理”设置为:“utf8_general_ci” 或执行语句: 复制代码 代码如下:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 创...2015-10-21
  • springBoot 项目排除数据库启动方式

    这篇文章主要介绍了springBoot 项目排除数据库启动方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-10
  • Linux 下使用shell脚本定时维护数据库的案例

    这篇文章主要介绍了Linux 下使用shell脚本定时维护数据库,本文通过案例分析给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • PHP连接公司内部服务器的MYSQL数据库的简单实例

    “主机,用户名,密码”得到连接、“数据库,sql,连接”得到结果,最后是结果的处理显示。当然,数据库连接是扩展库为我们完成的,我们能做的仅仅是处理结果而已。...2013-09-29
  • node.js如何操作MySQL数据库

    这篇文章主要介绍了node.js如何操作MySQL数据库,帮助大家更好的进行web开发,感兴趣的朋友可以了解下...2020-10-29
  • C#连接加密的Sqlite数据库的方法

    对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密,下面通过本文给大家介绍C#连接加密的Sqlite数据库的方法,感兴趣的朋友一起看看吧...2020-06-25
  • Java连接数据库oracle中文乱码解决方案

    这篇文章主要介绍了Java连接数据库oracle中文乱码解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-05-16