fork download
  1. <?php
  2. function unvar_dump($str) {
  3. if (strpos($str, "\n") === false) {
  4. //Add new lines:
  5. $regex = array(
  6. '#(\\[.*?\\]=>)#',
  7. '#(string\\(|int\\(|float\\(|array\\(|NULL|object\\(|})#',
  8. );
  9. $str = preg_replace($regex, "\n\\1", $str);
  10. $str = trim($str);
  11. }
  12. $regex = array(
  13. '#^\\040*NULL\\040*$#m',
  14. '#^\\s*array\\((.*?)\\)\\s*{\\s*$#m',
  15. '#^\\s*string\\((.*?)\\)\\s*(.*?)$#m',
  16. '#^\\s*int\\((.*?)\\)\\s*$#m',
  17. '#^\\s*bool\\(true\\)\\s*$#m',
  18. '#^\\s*bool\\(false\\)\\s*$#m',
  19. '#^\\s*float\\((.*?)\\)\\s*$#m',
  20. '#^\\s*\[(\\d+)\\]\\s*=>\\s*$#m',
  21. '#\\s*?\\r?\\n\\s*#m',
  22. );
  23. $replace = array(
  24. 'N',
  25. 'a:\\1:{',
  26. 's:\\1:\\2',
  27. 'i:\\1',
  28. 'b:1',
  29. 'b:0',
  30. 'd:\\1',
  31. 'i:\\1',
  32. ';'
  33. );
  34. $serialized = preg_replace($regex, $replace, $str);
  35. $func = create_function(
  36. '$match',
  37. 'return "s:".strlen($match[1]).":\\"".$match[1]."\\"";'
  38. );
  39. $serialized = preg_replace_callback(
  40. '#\\s*\\["(.*?)"\\]\\s*=>#',
  41. $func,
  42. $serialized
  43. );
  44. $func = create_function(
  45. '$match',
  46. 'return "O:".strlen($match[1]).":\\"".$match[1]."\\":".$match[2].":{";'
  47. );
  48. $serialized = preg_replace_callback(
  49. '#object\\((.*?)\\).*?\\((\\d+)\\)\\s*{\\s*;#',
  50. $func,
  51. $serialized
  52. );
  53. $serialized = preg_replace(
  54. array('#};#', '#{;#'),
  55. array('}', '{'),
  56. $serialized
  57. );
  58.  
  59. return unserialize($serialized);
  60. }
  61.  
  62. $str = 'array(53) {
  63. [0]=>
  64. string(5) "Fa0/3"
  65. [4]=>
  66. string(0) ""
  67. [5]=>
  68. string(4) "100M"
  69. [6]=>
  70. string(0) ""
  71. [7]=>
  72. string(4) "Pair"
  73. [8]=>
  74. string(1) "A"
  75. [12]=>
  76. string(0) ""
  77. [15]=>
  78. string(0) ""
  79. [16]=>
  80. string(3) "+/-"
  81. [17]=>
  82. string(2) "15"
  83. [18]=>
  84. string(6) "meters"
  85. [19]=>
  86. string(4) "Pair"
  87. [20]=>
  88. string(1) "B"
  89. [26]=>
  90. string(6) "Normal"
  91. [40]=>
  92. string(1) "
  93. "
  94. [56]=>
  95. string(0) ""
  96. [57]=>
  97. string(4) "Pair"
  98. [58]=>
  99. string(1) "B"
  100. [62]=>
  101. string(0) ""
  102. [63]=>
  103. string(2) "56"
  104. [65]=>
  105. string(0) ""
  106. [66]=>
  107. string(3) "+/-"
  108. [67]=>
  109. string(2) "15"
  110. [68]=>
  111. string(6) "meters"
  112. [69]=>
  113. string(4) "Pair"
  114. [70]=>
  115. string(1) "A"
  116. [75]=>
  117. string(0) ""
  118. [76]=>
  119. string(6) "Normal"
  120. [90]=>
  121. string(1) "
  122. "
  123. [106]=>
  124. string(0) ""
  125. [107]=>
  126. string(4) "Pair"
  127. [108]=>
  128. string(1) "C"
  129. [112]=>
  130. string(0) ""
  131. [113]=>
  132. string(3) "N/A"
  133. [128]=>
  134. string(0) ""
  135. [129]=>
  136. string(4) "Pair"
  137. [130]=>
  138. string(1) "D"
  139. [135]=>
  140. string(0) ""
  141. [136]=>
  142. string(3) "Not"
  143. [137]=>
  144. string(9) "Supported"
  145. [144]=>
  146. string(1) "
  147. "
  148. [160]=>
  149. string(0) ""
  150. [161]=>
  151. string(4) "Pair"
  152. [162]=>
  153. string(1) "D"
  154. [166]=>
  155. string(0) ""
  156. [167]=>
  157. string(3) "N/A"
  158. [182]=>
  159. string(0) ""
  160. [183]=>
  161. string(4) "Pair"
  162. [184]=>
  163. string(1) "C"
  164. [189]=>
  165. string(0) ""
  166. [190]=>
  167. string(3) "Not"
  168. [191]=>
  169. string(9) "Supported"
  170. [198]=>
  171. string(1) "
  172. "
  173. }';
  174.  
  175.  
  176. var_export(unvar_dump($str));
Success #stdin #stdout 0s 82624KB
stdin
Standard input is empty
stdout
array (
  0 => 'Fa0/3',
  4 => '',
  5 => '100M',
  6 => '',
  7 => 'Pair',
  8 => 'A',
  12 => '',
  15 => '',
  16 => '+/-',
  17 => '15',
  18 => 'meters',
  19 => 'Pair',
  20 => 'B',
  26 => 'Normal',
  40 => ';',
  56 => '',
  57 => 'Pair',
  58 => 'B',
  62 => '',
  63 => '56',
  65 => '',
  66 => '+/-',
  67 => '15',
  68 => 'meters',
  69 => 'Pair',
  70 => 'A',
  75 => '',
  76 => 'Normal',
  90 => ';',
  106 => '',
  107 => 'Pair',
  108 => 'C',
  112 => '',
  113 => 'N/A',
  128 => '',
  129 => 'Pair',
  130 => 'D',
  135 => '',
  136 => 'Not',
  137 => 'Supported',
  144 => ';',
  160 => '',
  161 => 'Pair',
  162 => 'D',
  166 => '',
  167 => 'N/A',
  182 => '',
  183 => 'Pair',
  184 => 'C',
  189 => '',
  190 => 'Not',
  191 => 'Supported',
  198 => ';',
)