yxwzaxns
V2EX  ›  PHP

php 是最好的语言。。

  •  
  •   yxwzaxns · Nov 1, 2015 · 5137 views
    This topic created in 3878 days ago, the information mentioned may be changed or developed.

    那么问题来了,这个问题怎么理解:

    <?php
    
    foreach ($_POST as $key => $value) {
        $_POST[false]=$value;
    }
    
    var_dump($_POST);
    
    ?>
    

    post 数据 w:123 a=456

    结果:

    array(3) {
    ["w"]=>
    string(3) "123"
    ["a"]=>
    string(3) "456"
    [0]=>
    string(3) "456"
    }
    
    Supplement 1  ·  Nov 1, 2015
    protected function _clean_input_keys($str, $fatal = TRUE)
    {

    if ( ! preg_match('/^[a-z0-9:_\/|-]+$/i', $str))
    {
    if ($fatal === TRUE)
    {
    return FALSE;
    }
    else
    {
    echo 'Disallowed Key Characters.';
    exit(7); // EXIT_USER_INPUT
    }
    }

    // Clean UTF-8 if supported
    if (UTF8_ENABLED === TRUE)
    {
    return $this->uni->clean_string($str);
    }

    return $str;
    }

    if (is_array($_POST) && count($_POST) > 0)
    {
    foreach ($_POST as $key => $val)
    {
    $_POST[$this->_clean_input_keys($key)] = $this->_clean_input_data($val);

    }

    }

    这是 ci 里对 post data key 进行处理的过程
    Supplement 2  ·  Nov 1, 2015
    如果提交有类似 [ ] 的 key ,好像 clean post data 处理完并没有什么卵用
    23 replies    2015-11-02 14:33:10 +08:00
    lizheming
        1
    lizheming  
       Nov 1, 2015   ❤️ 1
    belain
        2
    belain  
       Nov 1, 2015
    <?php

    foreach ($_POST as $key => $value) {
    $_POST[0]=$value;
    }

    var_dump($_POST);

    ?>

    很难理解?
    maddot
        3
    maddot  
       Nov 1, 2015
    呵呵
    aprikyblue
        4
    aprikyblue  
       Nov 1, 2015
    > // 键( key )可是是一个整数 integer 或字符串 string
    GGGG430
        5
    GGGG430  
       Nov 1, 2015
    0 和 '' 都相当于空字符和 false
    towser
        6
    towser  
       Nov 1, 2015
    false 被转换成 0 了。你是最好的程序员。
    Tianpu
        7
    Tianpu  
       Nov 1, 2015
    构造这种明显错误的语法究竟是为了什么?
    odirus
        8
    odirus  
       Nov 1, 2015
    何必为了黑而黑呢?如果你觉得自己牛逼,那首先你应该知道某种语言的缺陷,其次你还能规避或者用其他语言来弥补。你是连缺陷都不了解呢?还是不会其他拿手语言呢?
    yxwzaxns
        9
    yxwzaxns  
    OP
       Nov 1, 2015
    @odirus 然而我并没有这个想法,我只是不理解罢了,不知道你怎么会这样想
    odirus
        10
    odirus  
       Nov 1, 2015
    你这个标题让人看了就觉得。。,我也写过很长时间的 PHP ,不过遇到问题我会去先尝试解决,再回来总结。如果你提问,请认真提问。
    MaiCong
        11
    MaiCong  
       Nov 1, 2015
    不是语言的锅,是你为什么要这样写。
    pseudo
        12
    pseudo  
       Nov 1, 2015
    莫名其妙
    lincanbin
        13
    lincanbin  
       Nov 1, 2015 via Android
    低端黑
    raincious
        14
    raincious  
       Nov 1, 2015
    哈哈哈,楼上觉得楼主问题“莫名其妙”的,可以看这里的第二题以及答案:
    https://v2ex.xtra.eu.org/t/228831
    lincanbin
        15
    lincanbin  
       Nov 1, 2015 via Android
    这证明了 PHP 鲁棒性强,写其他语言里会爆炸的语句,竟然也能正常运行。
    PHP 对于 *个别群体* 的容忍度太高,这点不太好。
    dangyuluo
        16
    dangyuluo  
       Nov 1, 2015
    又是一个最好的程序员
    wdlth
        17
    wdlth  
       Nov 1, 2015
    JS 能钻空子的还要多……
    lk1ngaa7
        18
    lk1ngaa7  
       Nov 1, 2015
    有意思? php 写得好,对你本身的编程功底要求是非常高的
    kaka8wp
        19
    kaka8wp  
       Nov 2, 2015
    false 转换成 0 , Array([w] => 123 [a] => 456 [0] => 456)。[w] => 123 和[0] => 456 是不一样的。
    dcsite
        20
    dcsite  
       Nov 2, 2015
    你是最好的程序员~
    够低端
    ifconfig
        21
    ifconfig  
       Nov 2, 2015
    you sucks
    adexbn
        22
    adexbn  
       Nov 2, 2015
    这个标题是用来解决女朋友叫你出去陪她逛街问题的
    t2doo
        23
    t2doo  
       Nov 2, 2015
    不喜欢 PHP 可以不写嘛,不要这么为难自己,去写 JAVA 吧,那也是不错的语言,哈哈
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2841 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 12:13 · PVG 20:13 · LAX 05:13 · JFK 08:13
    ♥ Do have faith in what you're doing.