lua于php
A. lua如何嵌入php
跟javascript一样,只是把script中的type换成1即可
B. php跟lua和git关系大吗
这关系不大的,git和SVN差不多,是一个版本控制器,lua我在unity 3D上看过,是另一门语言
C. 服务端语言为lua,接收编码格式为sproto,客户端为php,请问php如何进行数据传递
最好编成通用格式json
D. Web后台语言的选择
php不适合,推荐lua,用openresty,虽然都是高级语言,但lua可以跟nginx无缝结合,lua是跑在nginx进程中的,这样就很有意思了。我写了一个简单的hello world,用ngx_lua跟php_fpm测试,lua每秒1万次,php每秒55次。为什么会如此悬殊?php通过php-fpm跟nginx实现业务功能,之间要通过网络;而lua是内嵌的,嵌入nginx内部,实现业务功能跟c语言掉个函数差不多。php每次执行都要编译。lua只编译一次,就驻内存中了。这个不仅仅是编译的开销,脚本文件本身从硬盘读取就是耗时的操作。当然php有一些优化手段,但无论怎么优化,都没有只加载一次速度快。php每次执行都是这个速度,而lua第一次执行稍慢,以后就快了。php是同步的,长时间的操作很容易耗尽连接数。lua是异步的。php调用mysql,文件读取等,用api调用,这个是同步操作。而lua是通过nginx的子请求实现的,而nginx本身是异步的。不仅仅是mysql这些,业务本身的一些操作也可以分为几个子请求完成。而nginx的子请求非常快,损耗忽略不计,业务代码可以通过划分子请求来实现业务耦合,降低耦合度有很多的帮助,每个子系统也相对简单很多。php,东西多的话,尤其mvc需要有一种熟练的框架,CodeIgniter, Yii, Zend 等等。上手简单,可以直接在页面中通过echo之类的函数加载动态值,做个mvp之类的东西出活快社区强大,各种问题都有现成的解。node比较火,异步很强大,语法和js一样,但个人感觉其实易用性易读性程度不如php。
E. 怎么把这段php代码写成lua
base64需要自己找个库调用一下,其他部分实现了,下面是代码
local function decode(str, skey) str = str or "" skey = skey or "cxphp" local replaceStr = string.gsub(str, "O0O0O", "=") replaceStr = string.gsub(replaceStr, "o000o", "+") replaceStr = string.gsub(replaceStr, "oo00o", "/") local strArr = {} local replaceStrLen = string.len(replaceStr) for pos = 1, replaceStrLen, 2 do local posEnd = math.min(pos + 1, replaceStrLen) strArr [#strArr + 1] = string.sub(replaceStr, pos, posEnd) end local strCount = #strArr for key = 1, string.len(skey) do local value = string.sub(skey, key, key) print(key, value, strArr[key], string.sub(strArr[key], 2, 2)) if key <= strCount and strArr[key] and string.sub(strArr[key], 2, 2) == value then strArr[key] = string.sub(strArr[key], 1, 1) end end local needToDecode = table.concat(strArr) print(needToDecode) -- TODO: find a lib base64_decodeend
F. C++, lua ,和PHP的核心问题
PHP内存管理上也用自动垃圾回收,PHP的数组也具有散列表的性质。
PHP没有c++ 或lua那样使用场合不确定。确定的只有数据处理。
PHP更专门化,“超文本预处理器”的名称就说明其专注的领域,
HTTP(超文本传输协议),
HTML(超文本标记语言),
及各种文本的预处理
以及整个网站相关的实务操作。文本、字符编码、数据库、密码、压缩、图片、常用媒体、常用协议等等。
非常具体和实务。
G. lua 操纵nginx php没用了吗
如果你nginx是rpm包安装的,直接用如下命令:
nginx
-v
如果你是源码包编译安装,假如你的安装路径是/usr/local/nginx,那么你可以使用:
/usr/local/nginx/sbin/nginx
-v
注意是大写的v,这样你就可以看到nginx已经加载的模块了。
H. php会被lua替代吗
我希望会,但是不可能的。