-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy pathPhpHelper.php
74 lines (64 loc) · 1.6 KB
/
PhpHelper.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php
/**
* Copyright © OXID eSales AG. All rights reserved.
* See LICENSE file for license details.
*/
namespace OxidSolutionCatalysts\AmazonPay\Core\Helper;
class PhpHelper
{
/**
* @param string $json
* @return array
*/
public static function jsonToArray(string $json): array
{
/** @var array $decoded */
$decoded = json_decode($json, true);
return $decoded;
}
/**
* @param string $needle
* @param array $haystack
* @return string|array|bool
*/
public static function getArrayValue(string $needle, array $haystack)
{
foreach ($haystack as $key => $value) {
if ($key === $needle) {
return $value;
}
if (is_array($value)) {
$result = self::getArrayValue($needle, $value);
if ($result !== false) {
return $result;
}
}
}
return false;
}
/**
* @param float $num
* @return string
*/
public static function getMoneyValue(float $num): string
{
return number_format($num, 2, '.', '');
}
/**
* Get POST from $_POST or php://input if set
* @return array
*/
public static function getPost(): array
{
if (!empty($_POST)) {
return $_POST;
}
/** @var array $decoded */
$decoded = json_decode((string)file_get_contents('php://input'), true);
$post = $decoded;
if (json_last_error() == JSON_ERROR_NONE) {
return $post;
}
return [];
}
}