Mysqli 数据连接
Php 文件函数
-
is_readable() - 判断给定文件名是否可读
-
is_writable() - 判断给定的文件名是否可写
-
is_file() - 判断给定文件名是否为一个正常的文件
-
file_exists() - 检查文件或目录是否存在
-
file() - 把整个文件读入一个数组中. \(@\)
-
clearstatcache() 以获得更多细节此函数的结果会被缓存。
-
parse_ini_file() - 解析一个配置文件 使用
-
fopen() - 打开文件或者 URL
-
fseek() - 在文件指针中定位
parse_ini_file
说明
parse_ini_file ( string
$filename
, bool$process_sections
= false , int$scanner_mode
= INI_SCANNER_NORMAL ) : array
参数
参数 | 必需的 | 描述 |
---|---|---|
filename | 是 | 要解析的 ini 文件的文件名。 |
process_sections | 否 | 如果将最后的 process_sections 参数设为 TRUE,将得到一个多维数组,包括了配置文件中每一节的名称和设置。process_sections 的默认值是 FALSE。 |
scanner_mode | 否 | 可以是 INI_SCANNER_NORMAL(默认)或 INI_SCANNER_RAW。 如果提供了 INI_SCANNER_RAW ,则不会解析选项值。 |
scanner_mode 未实践
说明:
The parse_ini_file function does have trouble loading valid Windows ini files like, for example, nternet shortcuts (.url files).
This is due to the function reading the URLs as a value, and failing when it finds that valid URL characters like ‘=‘ appear unescaped or the value unquoted as a whole. Since Windows does not escape them anyway, the solution is to scan it in raw mode, where it will read unparsed the value after the first ‘=‘. Since = only appears in URLs with parameters, this mistake may is not be obvious at a first glance.
An example
parse_ini_file函数在加载有效的Windows ini文件时确实有问题,例如,网络快捷方式(。url文件)。
这是由于函数将URL作为一个值读取,当它发现像‘=‘这样的有效URL字符出现未转义或未引用的值作为一个整体时失败。因为Windows无论如何都不会转义它们,所以解决方案是在原始模式下扫描它,它将在第一个‘=‘后读取未解析的值。Since =只出现在url中这个错误乍一看可能并不明显。
下面是一个例子:
<?php
$links = array();
// ...
$files = scandir($directory);
foreach( $files as $filename )
{
if (strToLower(pathinfo($filename, PATHINFO_EXTENSION)) === ‘url‘)
{
$shortcut = parse_ini_file( $directory.DIRECTORY_SEPARATOR.$filename, true, INI_SCANNER_RAW);
if ($shortcut === false) die(‘Syntax Error‘);
$url = $shortcut[‘InternetShortcut‘][‘URL‘];
$links []= $url;
}
}
?>
返回值
例子:
#文件路径 sample.env
[first_section]
one = 1
five = 5
animal = BIRD
[second_section]
path = "/usr/local/bin"
URL = "http://www.example.com/~username"
[third_section]
phpversion[] = "5.0"
phpversion[] = "5.1"
phpversion[] = "5.2"
phpversion[] = "5.3"
[session_test]
session[‘name‘]=1
session[‘id‘]=2
#php文件
//当前输出解析数据并且忽略【first_section】同等级的属性
//参数key=value key可以加【】为一个数组最多可加已成为二维数组。 value所有都为string
$param=parse_ini_file(‘sample.env‘);
var_dump($param);
-------------------------------------------------------------------------------
//添加true 不忽略【first_section】同等级属性变成多为数组,
$param=parse_ini_file(‘sample.env‘,true);
var_dump($param);
-------------------------------------------------------------------------------
//
#输出结果
#例1
array (size=7)
‘one‘ => string ‘1‘ (length=1)
‘five‘ => string ‘5‘ (length=1)
‘animal‘ => string ‘BIRD‘ (length=4)
‘path‘ => string ‘/usr/local/bin‘ (length=14)
‘URL‘ => string ‘http://www.example.com/~username‘ (length=32)
‘phpversion‘ =>
array (size=4)
0 => string ‘5.0‘ (length=3)
1 => string ‘5.1‘ (length=3)
2 => string ‘5.2‘ (length=3)
3 => string ‘5.3‘ (length=3)
‘session‘ =>
array (size=2)
‘name‘ => string ‘1‘ (length=1)
‘id‘ => string ‘2‘ (length=1)
-------------------------------------------------------------------------------
#例2
array (size=4)
‘first_section‘ =>
array (size=3)
‘one‘ => string ‘1‘ (length=1)
‘five‘ => string ‘5‘ (length=1)
‘animal‘ => string ‘BIRD‘ (length=4)
‘second_section‘ =>
array (size=2)
‘path‘ => string ‘/usr/local/bin‘ (length=14)
‘URL‘ => string ‘http://www.example.com/~username‘ (length=32)
‘third_section‘ =>
array (size=1)
‘phpversion‘ =>
array (size=4)
0 => string ‘5.0‘ (length=3)
1 => string ‘5.1‘ (length=3)
2 => string ‘5.2‘ (length=3)
3 => string ‘5.3‘ (length=3)
‘session_test‘ =>
array (size=1)
‘session‘ =>
array (size=2)
‘name‘ => string ‘2‘ (length=1)
‘id‘ => string ‘2‘ (length=1)
-------------------------------------------------------------------------------
注意: 本函数和 php.ini 文件没有关系,该文件在运行脚本时就已经处理过了。本函数可以用来读取你自己的应用程序的配置文件。
注意: 如果 ini 文件中的值包含任何非字母数字的字符,需要将其括在双引号中(")。
注意: 有些保留字不能作为 ini 文件中的键名,包括:null,yes,no,true 和 false。值为 null,no 和 false 等效于 "",值为 yes 和 true 等效于 "1"。字符 {}|&~![()" 也不能用在键名的任何地方,而且这些字符在选项值中有着特殊的意义。
php 类与对象
关键字:
? Final :PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承。
?