PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / trunk
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More vtrunk
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
← All changes | classes/helpers/FrmSerializedStringParserHelper.php +13 -3 6.25 → trunk View file →
@@ -37,8 +37,9 @@
37 37 * Parse a string containing a serialized data structure.
38 38 * This is the initial entry point into the recursive parser.
39 39 *
40 40 * @param string $string
41 + *
41 42 * @return mixed
42 43 */
43 44 public function parse( $string ) {
44 45 $unserialized_data = $this->do_parse( new FrmStringReaderHelper( $string ) );
@@ -55,12 +56,13 @@
55 56 *
56 57 * @since 6.20
57 58 *
58 59 * @param mixed $value
60 + *
59 61 * @return bool
60 62 */
61 63 private function serialized_value_is_valid( $value ) {
62 - return ! is_string( $value ) || strpos( $value, ';s:' ) === false;
64 + return ! is_string( $value ) || ! str_contains( $value, ';s:' );
63 65 }
64 66
65 67 /**
66 68 * @since 6.20
@@ -65,8 +67,9 @@
65 67 /**
66 68 * @since 6.20
67 69 *
68 70 * @param string $string
71 + *
69 72 * @return bool
70 73 */
71 74 private function serialized_string_is_invalid( $string ) {
72 75 $invalid_substrings = array(
@@ -74,9 +77,9 @@
74 77 ';s:";',
75 78 );
76 79
77 80 foreach ( $invalid_substrings as $invalid ) {
78 - if ( strpos( $string, $invalid ) !== false ) {
81 + if ( str_contains( $string, $invalid ) ) {
79 82 return true;
80 83 }
81 84 }
82 85
@@ -86,8 +89,9 @@
86 89 /**
87 90 * This is the recursive parser.
88 91 *
89 92 * @param FrmStringReaderHelper $string
93 + *
90 94 * @return array|bool|float|int|string|null
91 95 */
92 96 private function do_parse( $string ) {
93 97 // May be : or ; as a terminator, depending on what the data type is.
@@ -117,8 +121,9 @@
117 121 }
118 122
119 123 /**
120 124 * @param FrmStringReaderHelper $string
125 + *
121 126 * @return array
122 127 */
123 128 private function parse_array( $string ) {
124 129 // Associative array: a:length:{[index][value]...}
@@ -127,13 +132,14 @@
127 132 // Eat the opening "{" of the array.
128 133 $string->skip_next_character();
129 134
130 135 $val = array();
136 +
131 137 for ( $i = 0; $i < $count; $i++ ) {
132 138 $array_key = $this->do_parse( $string );
133 139 $array_value = $this->do_parse( $string );
134 140
135 - if ( ! is_array( $array_key ) ) {
141 + if ( ! is_array( $array_key ) && null !== $array_key ) {
136 142 $val[ $array_key ] = $array_value;
137 143 }
138 144 }
139 145
@@ -144,8 +150,9 @@
144 150 }
145 151
146 152 /**
147 153 * @param FrmStringReaderHelper $string
154 + *
148 155 * @return string
149 156 */
150 157 private function parse_string( $string ) {
151 158 $len = (int) $string->read_until( ':' );
@@ -158,8 +165,9 @@
158 165 }
159 166
160 167 /**
161 168 * @param FrmStringReaderHelper $string
169 + *
162 170 * @return int
163 171 */
164 172 private function parse_int( $string ) {
165 173 return (int) $string->read_until( ';' );
@@ -166,8 +174,9 @@
166 174 }
167 175
168 176 /**
169 177 * @param FrmStringReaderHelper $string
178 + *
170 179 * @return float
171 180 */
172 181 private function parse_float( $string ) {
173 182 return (float) $string->read_until( ';' );
@@ -174,8 +183,9 @@
174 183 }
175 184
176 185 /**
177 186 * @param FrmStringReaderHelper $string
187 + *
178 188 * @return bool
179 189 */
180 190 private function parse_bool( $string ) {
181 191 // Boolean is 0 or 1.