首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当数组索引不是英文字符时,如何使用Codeigniter从多维数组输入中获取POST数据?

当数组索引不是英文字符时,如何使用Codeigniter从多维数组输入中获取POST数据?
EN

Stack Overflow用户
提问于 2018-08-03 05:28:01
回答 1查看 259关注 0票数 1

我有一小段代码:

代码语言:javascript
运行
复制
<?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按钮时,输出是:

代码语言:javascript
运行
复制
Array
(
    [تهران] => Array
        (
            [0] => first
            [1] => second
        )

)

我已经将这段代码转换为Codeigniter控制器(Test.php),如下所示:

代码语言:javascript
运行
复制
<?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按钮后的代码输出:

代码语言:javascript
运行
复制
Array
(
    [0] => Array
        (
            [0] => first
            [1] => second
        )

)

我已经将Presian的数组索引改为英语,如下所示:

代码语言:javascript
运行
复制
<input type="text" name="test[tehran][]" value="first">
<input type="text" name="test[tehran][]" value="second">

输出又开始工作了:

代码语言:javascript
运行
复制
Array
(
    [tehran] => Array
        (
            [0] => first
            [1] => second
        )

)

但出于某些原因,我需要使用波斯语。那你能告诉我如何在Codeigniter中用波斯语解决这个问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-03 05:47:21

您需要在system/core/Input.php中查看_clean_input_keys()

默认正则表达式

代码语言:javascript
运行
复制
preg_match("/^[a-z0-9:_\/-]+$/i", $str)

不适用于波斯字符。

您可以尝试将其替换为:

代码语言:javascript
运行
复制
preg_match("/^[آ ا ب پ ت ث ج چ ح خ د ذ ر ز ژ س ش ص ض ط ظ ع غ ف ق ک گ ل م ن و ه ی]+$/i", $str))

或者通过注释签出来进行测试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51662391

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档