php怎么拼接变量,如何让PHP能够读取系统环境变量?
一、fpm模式
1、通过服务器传递
如在nginx的配置里设置:
fastcgi_param ENV_XXX 123456;
每次页面请求nginx都会将此变量传递给php,php可以通过getenv函数或$_SERVER全局变量获得。
2、通过fpm配置传递
fpm在每次启动时都会读取php-fpm.conf文件中的环境变量设置,如:
env[ENV_XXX]="test test"
或者让fpm读取系统环境变量,如:
env[ENV_XXX]=$ENV_XXX
注意此种方式要确保系统环境变量存在,且不被sudo禁用。
如果fpm是用sudo方式启动,默认sudo会禁用一些环境变量,可以通过以下方式放开限制:
vim /etc/sudoers
Defaults env_reset
Defaults env_keep = "ENV_XXX"
或者干脆放开所有限制:
Defaults !env_reset
最后,如果修改了php-fpm.conf中的设置需要重启fpm才能生效,同样php可以通过getenv函数或$_SERVER全局变量获得环境变量。
二、命令行模式
命令行模式限制较少,可以通过getenv函数或$_SERVER全局变量获取对当前执行用户有效的系统环境变量,同样要注意sudo的限制。
PHP技术技能介绍?
PHP语言技巧
1.PHP的语法:变量、数据类型、运算符;
2.PHP语言结构:分支结构、循环结构、函数应用;
3.PHP的数组:数组的创建、数组的操作和应用;
4.字符串与表达式:字符串处理、正则表达式、日期和时间;
5.目录和文件:目录的操作、文件的操作、文件的上传和下载;
6.会话控制和图像处理:cookie的应用、session的应用、图像处理;
php如何与oracle连接?
PHP其实本身是自带Oracle的扩展的,只不过开启之后基本上没有任何作用,需要自己去下载新版本的扩展,需要根据Oracle数据库版本去下载扩展,而且还需要下载对应php版本的oracle instant client 来支持扩展的运行,不然只是开启扩展,扩展也是开启不成功的,如果电脑上安装了Oracle数据的话,就不用下载oracle instant client ,这里我本地没有Oracle的客户端所以需要下载oracle instant client。
下载完成之后,解压到同一个文件夹目录下, 在这里,我们放在E:\Oracle下,解压到当前文件夹,最后会自动生成一个新的文件夹instantclient_11_2,两个安装包的文件都会放到该文件夹下,即 E:\Oracle\instantclient_11_2。
二、 修改系统变量
1> 将E:\Oracle\instantclient_11_2添加到系统变量PATH中
2> 新增系统变量
NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252 -->> 服务器端字符集
TNS_ADMIN=E:\Oracle\instantclient_11_2 -->> 指定tnsnames.ora所在位置
注意:如果安装网上方法系统变量依然没有生效的话,需重启电脑让修改的系统变量生效。
三、 在E:\Oracle\instantclient_11_2 下新建tnsnames.ora配置文件,内容如下:
到这里支持的扩展工具就安装好了,接下来就去下载oci8的php扩展包。
需要根据php版本下载对应版本的扩展,解压后将解压出来的.dll文件放到对应php的ext中,最后在php.ini中增加开启对应的扩展
extension=php_oci8.dll
extension=php_oci8_11g.dll
执行完成之后可以在phpinfo中查看到对应的功能已经开启。
如果你的phpinfo里面显示出来了这些就说明PHP已经可以连接并操作Oracle数据库了。
变量函数是什么意思?
php 支持变量函数的概念。
这意味着如果一个变量名后有圆括号,php 将寻找与变量的值同名的函数,并且将尝试执行它。除了别的事情以外,这个可以被用于实现回调函数,函数表等等 。
set语句怎么写?
$sql="update law set path='".$fname."' where num=".$num;
PHP中双引号中的变量可以自动替换 这样写容易有疏忽
也可以写成这样
$sql="update law set path='$fname' where num=$num";
因为path肯定是个字符串 所以应该加上单引号。。写变量的话,可以通过字符串拼接的方式来实现。
举例:
$sql="update tablename set usernmae='"+$username+"' ";
解释:以上语句就是传入一个$username参数,之后形成一个$sql字符串。
备注:之后可以通过execute immediate $sql来动态的执行此sql语句。