我有一段代码:
<?PHP
if ($_POST)
{
echo "<pre>";
print_r($_POST["test"]);
echo "</pre>";
}
?>
<form method="POST">
<input type="text" name="test[تهران][]" value="first">
<input type="text" name="test[تهران][]" value="second">
<input type="submit">
</form>
当我点击提交按钮时,输出是:
Array
(
[تهران] => Array
(
[0] => first
[1] => second
)
)
我已经将这段代码转换为Codeigniter控制器(Test.php(,如下所示:
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Test extends CI_Controller {
public function index()
{
if ($_POST)
{
echo "<pre>";
print_r($_POST["test"]);
echo "</pre>";
}
echo '<form method="POST">
<input type="text" name="test[تهران][]" value="first">
<input type="text" name="test[تهران][]" value="second">
<input type="submit">
</form>';
}
}
但它是点击提交按钮后的代码输出:
Array
(
[0] => Array
(
[0] => first
[1] => second
)
)
我已经将Presian的数组索引改为英文,如下所示:
<input type="text" name="test[tehran][]" value="first">
<input type="text" name="test[tehran][]" value="second">
输出再次工作:
Array
(
[tehran] => Array
(
[0] => first
[1] => second
)
)
但由于某些原因,我需要使用波斯语。那么你能指导我如何在Codeigniter中用波斯语解决这个问题吗?
您需要查看system/core/Input.php
中的_clean_input_keys()
默认的正则表达式
preg_match("/^[a-z0-9:_/-]+$/i", $str)
不适用于波斯字符。
您可以尝试将其替换为:
preg_match("/^[آ ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی]+$/i", $str))
或者通过评论签出进行测试。