本文目录一览:
- 1、在PHP中 变量声明是不是都是以$开头的 比如$name $age 等等
- 2、PHP中有好多带$符号的,比如$_FILES $_POST
- 3、PHP中.是什么
- 4、PHP中的文件系统函数(一)
- 5、PHP中${}什么意思,比如${1}
在PHP中 变量声明是不是都是以$开头的 比如$name $age 等等
php变量没有声明标志,你完全可以拿过来一个前面从没出现过的变量直接用,也不会报错,$value,就是php变量的格式。
PHP中有好多带$符号的,比如$_FILES $_POST
$_POST和$_FILES是PHP内置的全局变量,当你使用相应的功能是就会对这些变量赋值。比如当你用表单提交数据之后,你就可以用$_POST或$_GET来取得相应的提交数据,至于用$_POST还是用$_GET决定于你提交数据时选择的提交方式。另外$号在PHP中表示,这是一个变量。
PHP中.是什么
在php中,.是连接字符串用的,比如:
?php
$str1 = '我是康康,';
echo $str1.'我来自中国北京。';
?
输出结果为:我是康康,我来自北京。
不同的语言,字符串连接符不一样的。
PHP中的文件系统函数(一)
从这篇文章开始,我们将学习一系列的 PHP 文件系统相关函数。其实这些函数中,有很多都是我们经常用到的,大家并不需要刻意地去记住它们,只要知道有这么个东西,在使用的时候记得来查文档就可以了。
文件路径相关的函数往往在一些框架中会比较常见,而且多会配合 __FILE__ 、 __DIR__ 之类的魔术常量使用。
basename() 函数是获得路径中的文件名,它有两个参数,第一个是文件的路径,第二个是过滤掉的内容,比如第一条测试语句我们过滤掉文件的后缀名。
dirname() 返回的是路径中的路径部分,也就是不包含文件名的那部分内容,和 basename() 正好是相反的功能。
pathinfo() 函数用于以数组的形式返回路径中的信息,从结果来看,我们可以看到文件的 dirname 部分,basename 部分,以及文件的扩展名 extension 和不包含扩展名的 filename 内容。
realpath() 返回的是规范化的绝对路径名,它扩展所有的符号连接并且处理输入的路径中的 ./ 、 ../ 以及多余的 / ,返回的内容是标准规范的绝对路径。
接下来,我们学习一些修改文件相关属性的函数,主要就是在 Linux 系统环境中的文件权限信息的操作。
当然,首先我们得创建一个文件。和 Linux 中的命令是非常类似的。
touch() 函数除了给出要创建的文件名之外,还有两个可选参数可以指定文件的创建时间及访问时间,不给参数的话默认就是当前时间。这个文件名可以是相对或绝对路径中有权限的目录,并在该目录下创建一个空的文件。
通过 fileowner() 函数,我们可以获得某个文件所属的用户,默认情况下我们的用户是当前运行 PHP 脚本的用户,也就是系统目前的登录用户。在这里,我们使用 chown() 函数,将用户改为 www 用户。clearstatcache() 是用于清理文件系统的缓存信息,如果不清理一下的话,fileowner() 返回的依然还是之前的用户信息。
同理,使用 filegroup() 函数获得文件的属组信息,chgrp() 用于修改文件的属组。fileperms() 用于返回文件的权限信息,它返回的是数字模式的文件访问权限,这里我们使用 sprintf() 格式化结果后获得我们常用的 Linux 系统权限格式。chmod() 函数用于修改文件的权限,它的权限参数是三个 8 进制数据组成的数字,也就是代表 Linux 系统中的 1 、2 、4 和它们的组合,所以我们需要在前面再加上一个 0 用于确保操作能够正常执行。关于系统文件权限的知识大家需要认真学习 Linux 系统中相关的内容。
注意,上述函数如果在命令行中运行失败,大部分原因是没有权限,可以使用 sudo 进行测试。在 fastcgi 中运行时,就更加需要注意权限问题,仅在我们服务器可以操作的目录中进行安全的文件权限修改。
stat() 函数可以获取到指定文件的所有属性信息,在这里我们可以看到文件的 uid 、 gid 、 ctime 、 mtime 等信息。
在 Linux 系统中,有软连接和硬连接的相关知识。其实软连接就像是 Windows 中的快捷方式,而硬连接相关于复制了一份数据。在 PHP 中,也为我们提供了创建软硬连接以及相关的一些操作。
使用 link() 函数创建的就是一个指定文件的硬连接文件,而使用 symlink() 创建的则是一个软连接文件。相对来说,我们使用软连接的场景会更多一些。lstat() 就和 stat() 函数的功能一样,查看文件的各种属性信息,不过 lstat() 函数针对的是软硬连接文件。
同样地,我们也可以修改软硬连接的用户和用户组信息,不过它们的信息不能通过 fileowner() 或 filegroup() 查看。因为它们是连接文件,本身还是和原始文件绑定在一起的,使用 fileowner() 这类的函数查看到的依然是原始文件的信息。我们可以在系统环境中使用 ls -l 查看连接文件的用户和用户组信息是否修改成功。
今天的内容比较简单,而且修改权限的操作也并不常用。不过对于系统安全来,它们还是非常有用的,比如对于上传来说,我们要预防上传可执行文件的话,就可以通过修改文件的权限来让文件无法直接运行,从而起到安全保护的作用。另外,目录路径相关的操作也是一些框架的基础,几乎所有框架的入口或者说是 Composer 的入口,都会见到 dirname() 以及 basename() 之类函数的身影。
测试代码:
中的文件系统函数(一).php
参考文档:
PHP中${}什么意思,比如${1}
我也正看《细说PHP》那本书,也看到了这部分,${1}让我费解好半天,我查资料查了一个下午终于搞明白是什么意思了,这是preg_replace()正则表达式函数中的一个功能,一开始我以为是表达式的量词,就如同A{1},指定A出现的次数,但说不通。在函数手册中终于找到了${1},但看了半天也没看懂那段中文,估计是程序翻译的英文,看不懂。上面写的是后向引用(估计是程序自动翻译造成的结果),网上也有说是反向引用或逆向引用,最后终于在字里行间看懂什么意思了。就是反向引用preg_replace()中参数的内容。
${1}就是引用第一个参数中的内容,${2}也就是引用第二个参数中的内容。以此类推。
preg_replace ( $pattern , $replacement , $subject)
${1}的意思就是引用$pattern参数中的内容。如:
preg_replace ('大好人' , '卧底:${1}','我是大好人')
输出结果:我是卧底:大好人。
所以说${1}就是引用preg_replace的第一个参数内容的。