Print $_POST variable name along with value

前端 未结 4 645
既然无缘
既然无缘 2020-11-29 05:51

I have a POST in PHP for which I won\'t always know the names of the variable fields I will be processing.

I have a function that will loop through the values (howev

相关标签:
4条回答
  • 2020-11-29 06:30

    If you want to detect array fields use a code like this:

    foreach ($_POST as $key => $entry)
    {
        if (is_array($entry)){
            print $key . ": " . implode(',',$entry) . "<br>";
        }
        else {
            print $key . ": " . $entry . "<br>";
        }
    }
    
    0 讨论(0)
  • 2020-11-29 06:34

    You can have the foreach loop show the index along with the value:

    foreach ($_POST as $key => $entry)
    {
         print $key . ": " . $entry . "<br>";
    }
    

    As to the array checking, use the is_array() function:

    foreach ($_POST as $key => $entry)
    {
         if (is_array($entry)) {
            foreach($entry as $value) {
               print $key . ": " . $value . "<br>";
            }
         } else {
            print $key . ": " . $entry . "<br>";
         }
    }
    
    0 讨论(0)
  • 2020-11-29 06:37

    It's much better to use:

    if (${'_'.$_SERVER['REQUEST_METHOD']}) {
        $kv = array();
        foreach (${'_'.$_SERVER['REQUEST_METHOD']} as $key => $value) {
            $kv[] = "$key=$value";
        }
    }
    
    0 讨论(0)
  • 2020-11-29 06:43

    If you just want to print the entire $_POST array to verify your data is being sent correctly, use print_r:

    print_r($_POST);
    

    To recursively print the contents of an array:

    printArray($_POST);
    
    function printArray($array){
         foreach ($array as $key => $value){
            echo "$key => $value";
            if(is_array($value)){ //If $value is an array, print it as well!
                printArray($value);
            }  
        } 
    }
    

    Apply some padding to nested arrays:

    printArray($_POST);
    
    /*
     * $pad='' gives $pad a default value, meaning we don't have 
     * to pass printArray a value for it if we don't want to if we're
     * happy with the given default value (no padding)
     */
    function printArray($array, $pad=''){
         foreach ($array as $key => $value){
            echo $pad . "$key => $value";
            if(is_array($value)){
                printArray($value, $pad.' ');
            }  
        } 
    }
    

    is_array returns true if the given variable is an array.

    You can also use array_keys which will return all the string names.

    0 讨论(0)
提交回复
热议问题