php调用统计软件R进行复杂计算并获取结果的技术实现

php作为web程序开发的主要语言,应用广泛。R作为一种统计软件,在数学算法的实现上具有良好的可操作性。最近,由于工作的需要,要对一些web应用的数据进行复杂的数学计算,但php本身虽然可以写一些数学算法,但仍难以满足需求,数十行代码的效率抵不上R中的一个函数,经过研究,最终实现了在php的即时访问中调用R进行计算操作,并直接读取计算结果,在web页面中进行显示。大概思路如下:

重点在于php激活R程序运行,并向R传递计算参数,获得结果。

php激活R,可以采用内置函数exec,这样只要在操作系统运行窗口执行的命令都可以在此执行,R执行的命令为(以下均指在windows环境下)

"D:\\Program Files\R\R-2.15.2\bin\x64\R.exe" --vanilla < D:\\test.R  out.txt

第一部分为本机的R程序的路径,后边加R软件的option,可自定义,后加要执行的R程序文件,是重点,最后执行输出文件,此文件为指令必须,但对我们没有用处。

Tags: PHP, PHP编程

利用.user.ini文件修改 open_basedir加强php系统安全性

.user.ini是lnmp文件,里面放的是网站的文件夹路径地址,目的是防止跨目录访问和文件跨目录读取,从一定意义上,保证未知PHP代码可能带来的潜在的安全性问题。

配置放在根目录 .user.ini

open_basedir=/项目路径/:/tmp/:/proc/     

例:

open_basedir=/www/www.a.com/:/tmp/:/proc/

值得注意的是,上述路径中,请一定要以斜线结尾,如果没有用斜线结尾的话,则代表的是一系列以对应名称开头的目录。比如:/user 代表的就是 /user(*)/ ,所以请一定要注意,斜线的使用。

同时,注意设置改文件的权限,要比根目录代码权限高,防止被直接操作修改。


https://www.php.net/manual/zh/configuration.file.per-user.php

Tags: PHP, WEB开发, 安全

PHP页面添加HTTP认证代码

// Digest HTTP Authentication
// To enable, add user: "name" => "password".
//$users = array();
$users = array(""=>"");

// If auth is enabled:
if (!empty($users)) {
    if (empty($_SERVER['PHP_AUTH_DIGEST'])) {
        header('HTTP/1.1 401 Unauthorized');
        header('WWW-Authenticate: Digest realm="' . $realm . '",qop="auth",nonce="' . uniqid() . '",opaque="' . md5($realm) .
Tags: PHP, PHP编程

shell环境下cron定时执行php程序里相对引用的问题

Linux系统下,利用cron定时执行php程序是一种便捷的处理方式,最近测试一段php脚本,浏览器调用调试一切正常,于是配置了shell定时,但第二天却发现数据库里什么都没保存……查看错误日志,说是php某行错误,去查看这一行代码,发现是一个相对引用,之前这段脚本也定时执行过,执行的程序和引用的文件在同一个文件夹里边,引用直接写了文件名,没出现问题,前一天规划了一下目录,顺道改了下这个引用成../filename绝对引用,没想到就是这的问题,错误显示是解析到php server的目录了。。

解决方案:

加两行代码,切换目录:

$cur_dir = dirname(__FILE__); //获取当前文件的目录
chdir($cur_dir); //把当前的目录改变为指定的目录
require(../a.php); //引入相对路径文件


Tags: PHP, PHP编程, 后台
订阅 PHP