PluginProbe ʕ •ᴥ•ʔ
Starter Sites & Templates by Neve / 1.4.1
Starter Sites & Templates by Neve v1.4.1
1.4.1 1.4.0 1.3.0 1.2.29 1.2.28 1.2.6 1.2.7 1.2.8 1.2.9 trunk 1.0.10 1.0.11 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.20 1.1.21 1.1.22 1.1.23 1.1.24 1.1.25 1.1.26 1.1.27 1.1.28 1.1.29 1.1.3 1.1.30 1.1.31 1.1.32 1.1.33 1.1.34 1.1.35 1.1.36 1.1.37 1.1.38 1.1.39 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.3 1.2.4 1.2.5
templates-patterns-collection / includes / Importers / WP / Beaver_Data_Fix.php
templates-patterns-collection / includes / Importers / WP Last commit date
Atomic_Wind_Meta_Handler.php 3 months ago Beaver_Data_Fix.php 5 years ago Beaver_ParserXML.php 5 years ago Elementor_Meta_Handler.php 3 months ago WP_Import.php 3 months ago WXR_Parser.php 5 years ago WXR_Parser_SimpleXML.php 4 years ago WXR_Parser_XML.php 5 years ago
Beaver_Data_Fix.php
73 lines
1 <?php
2 namespace TIOB\Importers\WP;
3
4 /**
5 * Brought in from Beaver Builder Lite
6 *
7 * Portions borrowed from https://github.com/Blogestudio/Fix-Serialization/blob/master/fix-serialization.php
8 *
9 * Attempts to fix broken serialized data.
10 *
11 * @since 1.8
12 */
13 final class Beaver_Data_Fix {
14
15 /**
16 * @since 1.8
17 * @return string
18 */
19 static public function run( $data ) {
20 // return if empty
21 if ( empty( $data ) ) {
22 return $data;
23 }
24
25 $data = maybe_unserialize( $data );
26
27 // return if maybe_unserialize() returns an object or array, this is good.
28 if ( is_object( $data ) || is_array( $data ) ) {
29 return $data;
30 }
31
32 return preg_replace_callback( '!s:(\d+):([\\\\]?"[\\\\]?"|[\\\\]?"((.*?)[^\\\\])[\\\\]?");!', 'TIOB\Importers\WP\Beaver_Data_Fix::regex_callback', $data );
33 }
34
35 /**
36 * @since 1.8
37 * @return string
38 */
39 static public function regex_callback( $matches ) {
40 if ( ! isset( $matches[3] ) ) {
41 return $matches[0];
42 }
43
44 return 's:' . strlen( self::unescape_mysql( $matches[3] ) ) . ':"' . self::unescape_quotes( $matches[3] ) . '";';
45 }
46
47 /**
48 * Unescape to avoid dump-text issues.
49 *
50 * @since 1.8
51 * @access private
52 * @return string
53 */
54 static private function unescape_mysql( $value ) {
55 return str_replace(
56 array( '\\\\', "\\0", "\\n", "\\r", '\Z', "\'", '\"' ),
57 array( '\\', "\0", "\n", "\r", "\x1a", "'", '"' ),
58 $value
59 );
60 }
61
62 /**
63 * Fix strange behaviour if you have escaped quotes in your replacement.
64 *
65 * @since 1.8
66 * @access private
67 * @return string
68 */
69 static private function unescape_quotes( $value ) {
70 return str_replace( '\"', '"', $value );
71 }
72 }
73