???????????????????????
???????????? ???????[ 2012/5/22 13:08:15 ] ????????
???????????????????????????????????????????????????????PHP??????????????????????????????
????????з???????????????????????????????????????????????????????????????????????????????????????????????????????????????????y?????? PHP????????? ini ???????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????????????е??
???????????????????????????????????????????? + ????????????????? + ????????????????? + ????????????????????????????????????????????????????ú????????????????????????????????? + ??????????????????????????????????????????????????????
?????????в?????????????????????????????????????????????????????к??е?????????????е??????????????????????????????????????????????????????????????????κ???????????з?????
???????????????????????????????????????????????????????????Щ????
1. ?????????????????????????????????п?????????????б???????
2. Ч?????????????????????????????????????????????
3. ????????????????????????????????????
4. ????????
???????????????????????????????????????????????????????????????????????????
??????????????
???????????о????????????????????????????????
1. ?????????????????????????????
2. ????????????μ???????????????????????
3. ??????????????????????
4. ?????????????????????windows??linux??FreeBSD???????????е?????
???????????????
????????????????? PHP??????????????? ini ??????????
???????? PHP??????? PHP ????????????????????????????????????顢?????????????????????????????ó???????? PHP ??????????????????? PHP ?????????????????????????????????????С?
???????? ini ??????????????????????? ini ????????? xml ????????????????????????????????? PHP ????? parse_ini_file ?????ú?????????????? ini ?????
??????
???????????????????????????????????潲?????????????к????????????????????Σ?????????????????????????????????????????κ??????仹?з????????????????????????£?
?嵥???example.ini
[field1]
datatype="list?? range=[10-20]"
prefix="int_"
postfix=" "
[field2]
datatype="list?? range=[A-Z?? a-z]"
prefix="char_"
postfix=" "
[field3]
prefix=""
datatype="list?? range=[abc??123??xyz?? 100-110]"
postfix=" "
[field4]
prefix=""
datatype="list?? range=[100-200:2]"
postfix=" "
?????????????????????
1. ????????[]??????????????? key=value ????????????????ε??????
2. ????????????????????datatype ?????ε?????Χ??prefix ?趨??ε?????postfix ???趨??ε?????
3. datatype ?л??????????????? list????????????????б?????????????????????ε?????Χ???? range??
4. range ??????????? 1-10 ??????????????????????? ?? ????????????????????????仹??????????????????
????? example.ini ????ж??????????Σ???κ???????????????????????????ε?????Χ? 10-20????? int_??????????????Χ???Сд??????????? char_???????????????Χ????????????????? 100 ?? 200??????????? 2 ??
?嵥?????????????
int_10 char_A abc 100
int_11 char_B 123 102
int_12 char_C xyz 104
int_13 char_D 100 106
int_14 char_E 101 108
int_15 char_F 102 110
int_16 char_G 103 112
int_17 char_H 104 114
int_18 char_I 105 116
int_19 char_J 106 118
????????
??????????? ini ???
error_reporting(0);
$iniFile = $argv[1]; // ???????????????????
$dataCount = $argv[2]; // ??????????????????????
$fields = parse_ini_file($iniFile?? true); // ?? ini ?????????????????顣
?????????????????ε????б?
foreach($fields as $fieldName => $field)
{
$list = array();
$equalPos = strpos($field[??datatype??]?? ??=??); // ?????????? range=[]
$range = substr($field[??datatype??]?? $equalPos + 2?? -1); // ??? range ???б?(????? [])
$items = explode(???????? $range); // ??????е? item ????
/* ??????????? item??????????????????? range ?????? */
foreach($items as $item)
{
if(strpos($item?? ??-??))
{
list($min?? $max) = explode(??-???? $item);
$list = array_merge($list?? range($min?? $max)); // ???? field ?? list ?б??С?
}
else
{
$list[] = $item;
}
}
$field[??list??] = $list; // ????? list ?б????? field ??
$field[??pointer??] = 0; // ?????????б?????
$fields[$fieldName] = $field; // д?????? fields ???顣
}
??????????????????
/* ??????????? */
for($i = 0; $i < $dataCount; $i ++)
{
foreach($fields as $fieldName => $field)
{
$pointer = $field[??pointer??];
/* ????????????????б??β????????????б????? */
if($pointer == count($field[??list??])) $pointer = 0;
echo $field[??prefix??]; // ???????
echo $field[??list??][$pointer]; // ?????????????????б??е?????
echo $field[??postfix??]; // ????????
$pointer ++;
$fields[$fieldName][??pointer??] = $pointer;
}
echo " ";
}
??????????????? 50 ?е????????????????????????????????????????????????????????????????????????????????????????
???????????????
???????????????
??? list ???????????????????????????????????????????????Σ??????С?????ɡ??????????????????????????? ini ????????壬????????????????
???磬?????? example.ini ???????????????????Σ????? yyyy ?? mm ?? dd ?????
?嵥????example.ini ????????????
[field5]
prefix=""
datatype="custom" " ?????????ε?????????? custom
datacfg="custom.ini" " ?????????ε????????? custom.ini
postfix=""
?嵥???custom.ini
[field5.1]
prefix=""
datatype="list?? range=[1980-1999]"
postfix=" ?? "
[field5.2]
prefix=""
datatype="list?? range=[1-12]"
postfix=" ?? "
[field5.3]
prefix=""
datatype="list?? range=[1-31]"
postfix=" ?? "
???????? php ?е??麯???????????????????????????????η?????????????????????????????????? ini ???????????????????????????Ρ????????????????????????????????????
??????б??????????
?б? range ???????????????????磺
1. ?????????????range=[1-100:2]??????? 1 ?? 100??????? 2 ??????
2. ????????????????range=[1-100:2]&format=0.2f?????????? format ?????? sprintf ?????????????
3. ??????????????????????????????????б??е?????????????????????? rand ?????????????????
?????????????????
????????????????????е??????????????????????????????????????????????????? insert sql ??????? xml ????????????Щ??????????????????鷳??????????Щ??????????
??????
PHP ???????????????(???????????? web ??????)????? PHP ????????д?????С?????????????????????????????????????????????????????????????λ??????????????????????????????????????????????????????嵽?????????????????????????????????????????????????????????????????????????Щ??????????????????????????????
??????
???·???
??????????????????
2023/3/23 14:23:39???д?ò??????????
2023/3/22 16:17:39????????????????????Щ??
2022/6/14 16:14:27??????????????????????????
2021/10/18 15:37:44???????????????
2021/9/17 15:19:29???·???????·
2021/9/14 15:42:25?????????????
2021/5/28 17:25:47??????APP??????????
2021/5/8 17:01:11