我有一小段代码:
<?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>当我单击submit按钮时,输出是:
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>';
}
}但它是单击submit按钮后的代码输出:
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中用波斯语解决这个问题吗?
发布于 2018-08-03 05:47:21
您需要在system/core/Input.php中查看_clean_input_keys()
默认正则表达式
preg_match("/^[a-z0-9:_\/-]+$/i", $str)不适用于波斯字符。
您可以尝试将其替换为:
preg_match("/^[آ ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی]+$/i", $str))或者通过注释签出来进行测试。
https://stackoverflow.com/questions/51662391
复制相似问题