Sza*_*dor 2 php character-encoding fat-free-framework
我正在使用F3(无脂框架)进行工作中的项目,偶然发现了一个我似乎无法找到任何信息的问题.Google和官方F3文档都没有给我任何东西.也许我只是在问错误的问题.这是问题所在.
我有一个看起来像这样的数组:(city => type => building)
$places = array(
'City A' => array(
'special' => array(),
'standard' => array('Campus', ),
),
'City B' => array(
'special' => array(
'collect',
'exam',
'Brännässlan',
),
'standard' => array(
'Building A',
'Building B',
'Building C',
'Building D (Library)',
'Capitol',
'Flair',
),
),
),
Run Code Online (Sandbox Code Playgroud)
我想要做的是检查数组中的每个建筑物,看看是否为它设置了相应的字典变量.我用$f3->exists('dict_select_hus_arrayValue')
它来检查,它工作正常,直到函数遇到一个字母'ä'的建筑物.如果是,则会在文本中引发500错误Invalid hive key 'dict_select_hus_Brännässlan'
.
我假设它与字符串的编码有关,但我在纯UTF-8环境中工作,F3应该能够处理它.还有其他人遇到过这个,更重要的是,找到了问题的解决方案吗?
正如@ george007发现的那样,蜂巢键不允许有特殊的字符.但这仅适用于第一个 hive密钥段$part[0]
.它可以自由地使用它更深一层.所以city.Brännässlan
应该没问题.只需将您的城市和dictonary条目放入更深层次.即:
$f3->set('places',$places);
郎文件:
dict.select_hus.Brännässlan = XY
dict.select_hus.Kairo = YZ
Run Code Online (Sandbox Code Playgroud)
PHP:
foreach ($f3->get('places') as $c_name => $city) {
if ($f3->exists('dict.select_hus.'.$c_name)) {
// it's there
}
}
Run Code Online (Sandbox Code Playgroud)
来自http://fatfreeframework.com/base#set的一张NB
请记住:Hive键区分大小写.此外,根据这些允许的字符检查根蜂巢密钥的有效性:[az AZ 0-9 _]
归档时间: |
|
查看次数: |
354 次 |
最近记录: |