Passed
Push — master ( bd2115...5437ab )
by Xavier
01:30
created

date_from_human_readable()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 3
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 1
1
<?php
2
3
use Tightenco\Collect\Support\Arr;
4
use PubPeerFoundation\PublicationDataExtractor\Support\DateHelper;
5
6
if (! function_exists('get_class_name')) {
7
    /**
8
     * @param $object
9
     * @return string
10
     */
11
    function get_class_name($object)
12
    {
13
        $className = get_class($object);
14
        $pos = strrpos($className, '\\');
15
16
        return substr($className, $pos + 1);
17
    }
18
}
19
20
if (! function_exists('date_from_parts')) {
21
    /**
22
     * Get Carbon Date Object from parts.
23
     *
24
     * @param  array $array
25
     * @return mixed
26
     */
27
    function date_from_parts($array)
28
    {
29
        return DateHelper::dateFromDateParts($array);
30
    }
31
}
32
33
if (! function_exists('date_from_pub_date')) {
34
    /**
35
     * Get Carbon Date Object from pub_date.
36
     *
37
     * @param  $object
38
     * @return mixed
39
     */
40
    function date_from_pub_date($object)
41
    {
42
        return DateHelper::dateFromPubDate($object);
43
    }
44
}
45
46
if (! function_exists('date_from_parseable_format')) {
47
    /**
48
     * Get Carbon Date Object from parseable string.
49
     *
50
     * @param  string $string
51
     * @return mixed
52
     */
53
    function date_from_parseable_format($string)
54
    {
55
        return DateHelper::dateFromParseableFormat($string);
56
    }
57
}
58
59
if (! function_exists('date_from_human_readable')) {
60
    /**
61
     * Get Carbon Date Object from human readable string.
62
     *
63
     * @param  string $string
64
     * @return mixed
65
     */
66
    function date_from_human_readable($string)
67
    {
68
        return DateHelper::dateFromHumanReadable($string);
69
    }
70
}
71
72
if (! function_exists('get_string')) {
73
    /**
74
     * Get string from array path.
75
     *
76
     * @param array $array
77
     * @param $key
78
     * @param  mixed  $default
79
     * @return string
80
     */
81
    function get_string($array, $key, $default = null)
82
    {
83
        return stringify(data_get($array, $key, $default));
84
    }
85
}
86
87
if (! function_exists('get_array')) {
88
    /**
89
     * Get array from dot access key.
90
     *
91
     * @param mixed $target
92
     * @param $key
93
     * @param  array $default
94
     * @return array
95
     */
96
    function get_array($target, $key, $default = [])
97
    {
98
        $target = is_array($target) ? array_filter($target) : $target;
99
100
        return Arr::wrap(data_get($target, $key, $default));
101
    }
102
}
103
104
if (! function_exists('stringify')) {
105
    /**
106
     * Convert entry to string.
107
     *
108
     * @param  mixed  $data
109
     * @return string
110
     */
111
    function stringify($data)
112
    {
113
        if (empty($data)) {
114
            return '';
115
        }
116
117
        if (is_array($data)) {
118
            $data = array_filter($data);
119
120
            return stringify(array_shift($data));
121
        }
122
123
        return (string) trim($data);
124
    }
125
}
126
127
if (! function_exists('find_emails_in_array')) {
128
    /**
129
     * Find emails in array.
130
     *
131
     * @param  array $array
132
     * @return array
133
     */
134
    function find_emails_in_array($array)
135
    {
136
        $pattern = '/(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\\]))/iD';
137
138
        preg_match_all($pattern, implode(' ', $array), $matches);
139
140
        return $matches[0];
141
    }
142
}
143