1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143
|
--TEST--
Test parse_ini_file() function : variation - various absolute and relative paths
--CREDITS--
Dave Kelsey <d_kelsey@uk.ibm.com>
--SKIPIF--
<?php
if(substr(PHP_OS, 0, 3) != "WIN")
die("skip Only run on Windows");
?>
--FILE--
<?php
/* Prototype : array parse_ini_file(string filename [, bool process_sections])
* Description: Parse configuration file
* Source code: ext/standard/basic_functions.c
* Alias to functions:
*/
echo "*** Testing parse_ini_file() : variation ***\n";
$mainDir = "parseIniFileVar6.dir";
$subDir = "parseIniFileVar6Sub";
$absMainDir = dirname(__FILE__)."\\".$mainDir;
mkdir($absMainDir);
$absSubDir = $absMainDir."\\".$subDir;
mkdir($absSubDir);
$old_dir_path = getcwd();
chdir(dirname(__FILE__));
$unixifiedDir = '/'.substr(str_replace('\\','/',$absSubDir),3);
$allDirs = array(
// absolute paths
"$absSubDir\\",
"$absSubDir\\..\\".$subDir,
"$absSubDir\\\\..\\.\\".$subDir,
"$absSubDir\\..\\..\\".$mainDir."\\.\\".$subDir,
"$absSubDir\\..\\\\\\".$subDir."\\\\..\\\\..\\".$subDir,
"$absSubDir\\BADDIR",
// relative paths
$mainDir."\\".$subDir,
$mainDir."\\\\".$subDir,
$mainDir."\\\\\\".$subDir,
".\\".$mainDir."\\..\\".$mainDir."\\".$subDir,
"BADDIR",
// unixifed path
$unixifiedDir,
);
$filename = 'ParseIniFileVar6.ini';
$content="a=test";
$absFile = $absSubDir.'/'.$filename;
$h = fopen($absFile,"w");
fwrite($h, $content);
fclose($h);
for($i = 0; $i<count($allDirs); $i++) {
$j = $i+1;
$dir = $allDirs[$i];
echo "\n-- Iteration $j --\n";
var_dump(parse_ini_file($dir."\\".$filename));
}
unlink($absFile);
chdir($old_dir_path);
rmdir($absSubDir);
rmdir($absMainDir);
echo "\n*** Done ***\n";
?>
--EXPECTF--
*** Testing parse_ini_file() : variation ***
-- Iteration 1 --
array(1) {
["a"]=>
string(4) "test"
}
-- Iteration 2 --
array(1) {
["a"]=>
string(4) "test"
}
-- Iteration 3 --
array(1) {
["a"]=>
string(4) "test"
}
-- Iteration 4 --
array(1) {
["a"]=>
string(4) "test"
}
-- Iteration 5 --
Warning: parse_ini_file(%sparseIniFileVar6.dir\parseIniFileVar6Sub\..\\\parseIniFileVar6Sub\\..\\..\parseIniFileVar6Sub\ParseIniFileVar6.ini): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 6 --
Warning: parse_ini_file(%sparseIniFileVar6.dir\parseIniFileVar6Sub\BADDIR\ParseIniFileVar6.ini): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 7 --
array(1) {
["a"]=>
string(4) "test"
}
-- Iteration 8 --
array(1) {
["a"]=>
string(4) "test"
}
-- Iteration 9 --
array(1) {
["a"]=>
string(4) "test"
}
-- Iteration 10 --
array(1) {
["a"]=>
string(4) "test"
}
-- Iteration 11 --
Warning: parse_ini_file(BADDIR\ParseIniFileVar6.ini): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 12 --
array(1) {
["a"]=>
string(4) "test"
}
*** Done ***
|