/** * Test the JInput::get method using a nested data set. */ public function testGetArrayNested() { $filterMock = new JFilterInputMockTracker(); $input = new JInput(array('var2' => 34, 'var3' => array('var2' => 'test'), 'var4' => array('var1' => array('var2' => 'test'))), array('filter' => $filterMock)); $this->assertThat($input->getArray(array('var2' => 'filter2', 'var3' => array('var2' => 'filter3'))), $this->equalTo(array('var2' => 34, 'var3' => array('var2' => 'test'))), 'Line: ' . __LINE__ . '.'); $this->assertThat($input->getArray(array('var4' => array('var1' => array('var2' => 'filter1')))), $this->equalTo(array('var4' => array('var1' => array('var2' => 'test')))), 'Line: ' . __LINE__ . '.'); $this->assertThat($filterMock->calls['clean'][0], $this->equalTo(array(34, 'filter2')), 'Line: ' . __LINE__ . '.'); $this->assertThat($filterMock->calls['clean'][1], $this->equalTo(array(array('var2' => 'test'), 'array')), 'Line: ' . __LINE__ . '.'); }
/** * Test the JInput::getArray method without specified variables. * * @return void * * @since 12.3 */ public function testGetArrayWithoutSpecifiedVariables() { $array = array('var2' => 34, 'var3' => array('var2' => 'test'), 'var4' => array('var1' => array('var2' => 'test')), 'var5' => array('foo' => array()), 'var6' => array('bar' => null), 'var7' => null); $input = new JInput($array); $this->assertEquals($input->getArray(), $array); }
/** * Returns posted data in array format * * @return array * * @since 1.2 */ public static function getPostedData() { $input = JFactory::getApplication()->input; $inputData = file_get_contents("php://input"); if (is_object($inputData)) { $inputData = JArrayHelper::fromObject($inputData); } elseif (is_string($inputData)) { $inputData = trim($inputData); $parsedData = null; // We try to transform it into JSON if ($data_json = @json_decode($inputData, true)) { if (json_last_error() == JSON_ERROR_NONE) { $parsedData = (array) $data_json; } } // We try to transform it into XML if (is_null($parsedData) && ($xml = @simplexml_load_string($inputData))) { $json = json_encode((array) $xml); $parsedData = json_decode($json, true); } // We try to transform it into Array if (is_null($parsedData) && !empty($inputData) && !is_array($inputData)) { parse_str($inputData, $parsedData); } $inputData = $parsedData; } else { $inputData = $input->post->getArray(); } // Filter data with JInput default filter $postedData = new JInput($inputData); return $postedData->getArray(); }