param

Windows系统下PHP使用Redis

Deadly 提交于 2019-11-28 12:29:52
  在 http://www.redis.net.cn/ 能找到所有关于redis的信息,包括安装、命令、在编程语言中的使用等等。这里就不讲如何安装redis了,因为在上面的网站中都能找到。下面直接讲redis是如何在php中使用的,这里我选择的是phpredis扩展。 1. 下载phpredis扩展     执行phpinfo()函数,根据下面截图中的“NTS”和“VCn”选择对应的压缩包, https://github.com/phpredis/phpredis/downloads 。另外注意,PHP版本也要对应好。 2. PHP配置安装扩展   首先把压缩包中的 php_igbinary.dll和php_redis.dll 文件放到PHP安装目录的 ext 目录中   然后在 php.ini 添加如下配置 extension=php_igbinary.dll extension=php_redis.dll 3. 重启apache,执行phpinfo()函数,会发现多了redis的扩展。 4. 开启Redis服务,测试 $redis = new Redis(); //连接redis服务器 $redis->connect('127.0.0.1', '6379'); echo "Connection to server sucessfully <br/>"; //查看服务是否运行

DBUS基础知识

℡╲_俬逩灬. 提交于 2019-11-28 12:26:49
1. 进程间使用D-Bus通信 D-Bus是一种高级的进程间通信机制,它由freedesktop.org项目提供,使用GPL许可证发行。D-Bus最主要的用途是在Linux桌面环境为进程提供通信,同时能将Linux桌面环境和Linux内核事件作为消息传递到进程。D-Bus的主要概率为总线,注册后的进程可通过总线接收或传递消息,进程也可注册后等待内核事件响应,例如等待网络状态的转变或者计算机发出关机指令。目前,D-Bus已被大多数Linux发行版所采用,开发者可使用D-Bus实现各种复杂的进程间通信任务。 2. D-Bus的基本概念 D-Bus是一个消息总线系统,其功能已涵盖进程间通信的所有需求,并具备一些特殊的用途。D-Bus是三层架构的进程间通信系统,其中包括: 接口层:接口层由函数库libdbus提供,进程可通过该库使用D-Bus的能力。 总线层:总线层实际上是由D-Bus总线守护进程提供的。它在Linux系统启动时运行,负责进程间的消息路由和传递,其中包括Linux内核和Linux桌面环境的消息传递。 包装层:包装层一系列基于特定应用程序框架的Wrapper库。 D-Bus具备自身的协议,协议基于二进制数据设计,与数据结构和编码方式无关。该协议无需对数据进行序列化,保证了信息传递的高效性。无论是libdbus,还是D-Bus总线守护进程,均不需要太大的系统开销。 总线是D

android用于打开各种文件的intent,包括以下文件PDF,PPT,WORD,EXCEL...

余生颓废 提交于 2019-11-28 12:04:37
import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.net.Uri.Builder; import java.io.File; import android.content.Intent; //自定义android Intent类, //可用于获取打开以下文件的intent //PDF,PPT,WORD,EXCEL,CHM,HTML,TEXT,AUDIO,VIDEO public class MyIntent { //android获取一个用于打开HTML文件的intent public static Intent getHtmlFileIntent( String param ) { Uri uri = Uri.parse(param ).buildUpon().encodedAuthority("com.android.htmlfileprovider").scheme("content").encodedPath(param ).build(); Intent intent = new Intent("android.intent.action.VIEW"); intent.setDataAndType(uri, "text

How to pass values from HTML page to java applet?

ⅰ亾dé卋堺 提交于 2019-11-28 11:41:00
I have tried passing values using javascript like below <script language= "javascript" type= "text/javascript"> var num; function getVal() { num=document.getElementById('in').value; alert(document.getElementById('parm').value); } </script> <body> <form > Number : <input type="text" id="in" ><br/> <button id="myBtn" onclick="getVal()">Try it</button><br/> </form> <APPLET code="Calc.class" width="100" height="100"> <PARAM name="number" id="parm"> </APPLET> </body> </html> The alert box displays the entered value on screen but the applet code is not displaying the same. My applet code is public

The “state” param from the URL and session do not match

拜拜、爱过 提交于 2019-11-28 10:50:36
In facebook documantion require('include/facebook/autoload.php'); //SDK directory $fb = new Facebook\Facebook([ 'app_id' => '***********', 'app_secret' => '***********************' ]); $helper = $fb->getRedirectLoginHelper(); $permissions = ['email', 'public_profile']; // optional $loginUrl = $helper->getLoginUrl('http://www.meusite.com.br/login-callback.php', $permissions); When direct it to the url $loginUrl, the return is: Facebook SDK returned an error: Cross-site request forgery validation failed. The "state" param from the URL and session do not match I had the same error. The problem

蒙特卡罗定位(Particle Filter Localization)

◇◆丶佛笑我妖孽 提交于 2019-11-28 10:32:07
1. 蒙特卡罗定位 定位:机器人知道地图信息的情况下如何利用传感器信息确定自己的位置(Localization)。 有人会说,定位是不需要地图信息的。机器人知道初始位置,知道左右轮的速度,就可以算出在一段时间内左右轮分别走了多少距离,进而算出机器人的转角和位移,以便更新位置信息。但是显然,这种方法存在很大的问题。首先,速度是传感器获得的,然而传感器是有精度限制的,这就意味着误差的存在,对时间积分求距离误差就更大了;另外,机器人也可能存在打滑之类的机械问题。结合地图来对机器人进行定位能有效减小误差。 传感器方面。我们使用激光传感器,它能够测量机器人各个方向和最近障碍物之间的距离。在每一个时间点,机器人都会获得激光传感器的测量值。如下图,绿色三角形是机器人,红色的线是激光束,黄色的格子是机器人在该激光方向上检测到的最近的障碍物。 地图是占据栅格地图(Occupancy Grid Map)。比如,下面的地图中,浅色(白色)的格子表示障碍物,深色(黑色)的格子表示空白位置。 那么,在这个时间点,我们要做的就是把机器人放到地图中去,使得激光传感器的读数尽可能符合地图信息(如下图所示)。 这样,对于一个时间点的定位问题就变成了求解最优函数的问题了。然而这个最优化函数太难求解了(坐标和角度都是连续变化的,而地图是一个一个格子的数值)。 我们需要注意到两点。第一,对于给定的机器人位置信息

PHP计算两个坐标之间的距离

落爺英雄遲暮 提交于 2019-11-28 10:14:23
<?php /** * 计算两点之间的距离 * @param $lng1 经度1 * @param $lat1 纬度1 * @param $lng2 经度2 * @param $lat2 纬度2 * @param int $unit m,km * @param int $decimal 位数 * @return float */ function getDistance($lng1, $lat1, $lng2, $lat2, $unit = 2, $decimal = 2) { $EARTH_RADIUS = 6370.996; // 地球半径系数 $PI = 3.1415926535898; $radLat1 = $lat1 * $PI / 180.0; $radLat2 = $lat2 * $PI / 180.0; $radLng1 = $lng1 * $PI / 180.0; $radLng2 = $lng2 * $PI / 180.0; $a = $radLat1 - $radLat2; $b = $radLng1 - $radLng2; $distance = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))); $distance =

Log4Net的使用之winform

爷,独闯天下 提交于 2019-11-28 09:57:01
当我们将asp程序部署到远程服务器上的时候,如果遇到程序错误,如何能快速的判断我们程序的错误呢。所以--> Log4Net作为记录日志的一大神器,不得不学会熟练使用啊! 没有那么多的原理,照猫画虎的使用,保证你也能成功的使用这么简单的日志记录工具。 在 WinForm 中做好五步即可使用 Log4Net //第一步:Nuget安装log4net --> Install-Package log4net //第二步:在项目文件根目录加入文件log4net.config(如下,直接拷贝使用) <!-- Level的级别,由高到低 --> <!-- None > Fatal > ERROR > WARN > DEBUG > INFO > ALL--> <!-- 解释:如果level是ERROR,则在cs文件里面调用log4net的info()方法,则不会写入到日志文件中--> <log4net> <!--错误日志类--> <logger name="logerror"><!--日志类的名字--> <level value="ALL" /><!--定义记录的日志级别--> <appender-ref ref="ErrorAppender" /><!--记录到哪个介质中去--> </logger> <!--信息日志类--> <logger name="loginfo"> <level

Delphi采用接口实现DLL调用

一个人想着一个人 提交于 2019-11-28 09:42:46
Delphi使用模块化开发,可以采用DLL或者BPL,两者的区别是BPL只能被同版本的Delphi使用,DLL可以被不同版本和不同开发工具的开发的软件调用。 因此我们的软件大多使用Delphi作为界面以及部分DLL模块的开发工具。 DLL模块之间通过接口方式调用。 1.对象创建采用工厂模式,每个DLL负责某个对象或若干个对象的创建及释放,例如: DLL工程为http客户端(prjHttp.DLL)模块,通过DLL导出的GetHttpClientFactory获取http客户端工厂接口,通过接口创建Http客户端和释放Http客户端,工程 包括3个文件:工程文件,实现单元,接口单元。 调用此DLL的程序仅需要包含接口单元。 DLL工程文件 1 library prjHttp; 2 3 uses System.SysUtils, System.Classes, utHTTPClient in 'utHTTPClient.pas'; 4 5 {$R *.res} 6 7 exports 8 GetHttpClientFactory; 9 end. utHttpClient示例 unit utHttpClient; interface uses utBaseObject, utHttpInterface, Classes, SysUtils; type .........

axios上传图片(及vue上传图片到七牛))

久未见 提交于 2019-11-28 08:59:34
浏览器上传图片到服务端,我用过两种方法: 1.本地图片转换成base64,然后通过普通的post请求发送到服务端。   操作简单,适合小图,以及如果想兼容低版本的ie没办法用此方法 2.通过form表单提交。   form表单提交图片会刷新页面,也可以时form绑定到一个隐藏的iframe上,可以实现无刷新提交数据。但是如果想传输多条form表单数据,需要写很多dom,同时还要写iframe,太麻烦。 目前感觉比较干净的办法就是 通过axios的post请求,发送form数据到后台。 html部分,至于界面优化,可以把input file的opacity设置为0,点击其父容器,即触发file <input class="file" name="file" type="file" accept="image/png,image/gif,image/jpeg" @change="update"/> axios的post请求,发送form数据部分,这样就可以无刷新的提交form数据到后台 update(e){ let file = e.target.files[0]; let param = new FormData(); //创建form对象 param.append('file',file,file.name);//通过append向form对象添加数据 param.append(