Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
1,135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.22 KB | None | 0 0
  1. paypal_merchant_email="sample@ymail.com"|paypal_verified_only="0"|payment_currency=""|sandbox="1"|sandbox_merchant_email="sample@ymail.com"|payment_logos=""|debug="0"|status_pending="W"|status_success="O"|status_canceled="D"|countries=""|min_amount="0"|max_amount="0"|secure_post=""|ipn_test=""|no_shipping="0"|address_override="0"|cost_per_transaction="0"|cost_percent_total="0"|tax_id=0|
  2.  
  3. <?php
  4. // explode
  5. $start = microtime(TRUE);
  6. $data = array();
  7. foreach (explode('|', $result->sandbox) as $item)
  8. {
  9. if (empty($item)) continue;
  10. list($key, $value) = explode("=", $item);
  11. $data[$key] = str_replace('"', '', $value);
  12. }
  13. print_r($data);
  14. $stop = microtime(TRUE);
  15. $timeResult = $stop - $start;
  16. echo $timeResult, "n";
  17.  
  18. //preg_split
  19. $start = microtime(TRUE);
  20. $data = array();
  21. foreach (preg_split('/|/', $result->sandbox) as $item)
  22. {
  23. if (empty($item)) continue;
  24. list($key, $value) = preg_split('/=/', $item);
  25. $data[$key] = str_replace('"', '', $value);
  26. }
  27. print_r($data);
  28. $stop = microtime(TRUE);
  29. $timeResult = $stop - $start;
  30. echo $timeResult, "n";
  31.  
  32. //preg_match_all
  33. $start = microtime(TRUE);
  34. $data = array();
  35. preg_match_all('/([^=]+)="([^"]+)?"|/', $result->sandbox, $result);
  36. $data = array_combine($result[1], $result[2]);
  37. print_r($data);
  38. $stop = microtime(TRUE);
  39. $timeResult = $stop - $start;
  40. echo $timeResult, "n";
  41.  
  42. Array
  43. (
  44. [paypal_merchant_email] => sample@ymail.com
  45. [paypal_verified_only] => 0
  46. [payment_currency] =>
  47. [sandbox] => 1
  48. [sandbox_merchant_email] => sample@ymail.com
  49. [payment_logos] =>
  50. [debug] => 0
  51. [status_pending] => W
  52. [status_success] => O
  53. [status_canceled] => D
  54. [countries] =>
  55. [min_amount] => 0
  56. [max_amount] => 0
  57. [secure_post] =>
  58. [ipn_test] =>
  59. [no_shipping] => 0
  60. [address_override] => 0
  61. [cost_per_transaction] => 0
  62. [cost_percent_total] => 0
  63. [tax_id] => 0
  64. )
  65. 0.00029397010803223
  66.  
  67. Array
  68. (
  69. [paypal_merchant_email] => sample@ymail.com
  70. [paypal_verified_only] => 0
  71. [payment_currency] =>
  72. [sandbox] => 1
  73. [sandbox_merchant_email] => sample@ymail.com
  74. [payment_logos] =>
  75. [debug] => 0
  76. [status_pending] => W
  77. [status_success] => O
  78. [status_canceled] => D
  79. [countries] =>
  80. [min_amount] => 0
  81. [max_amount] => 0
  82. [secure_post] =>
  83. [ipn_test] =>
  84. [no_shipping] => 0
  85. [address_override] => 0
  86. [cost_per_transaction] => 0
  87. [cost_percent_total] => 0
  88. [tax_id] => 0
  89. )
  90. 0.00031495094299316
  91.  
  92. Array
  93. (
  94. [paypal_merchant_email] => sample@ymail.com
  95. [paypal_verified_only] => 0
  96. [payment_currency] =>
  97. [sandbox] => 1
  98. [sandbox_merchant_email] => sample@ymail.com
  99. [payment_logos] =>
  100. [debug] => 0
  101. [status_pending] => W
  102. [status_success] => O
  103. [status_canceled] => D
  104. [countries] =>
  105. [min_amount] => 0
  106. [max_amount] => 0
  107. [secure_post] =>
  108. [ipn_test] =>
  109. [no_shipping] => 0
  110. [address_override] => 0
  111. [cost_per_transaction] => 0
  112. [cost_percent_total] => 0
  113. [tax_id] => 0
  114. )
  115. 0.00026917457580566
  116.  
  117. Array
  118. (
  119. [paypal_merchant_email] => sample@ymail.com
  120. [paypal_verified_only] => 0
  121. [payment_currency] =>
  122. [sandbox] => 1
  123. [sandbox_merchant_email] => sample@ymail.com
  124. [payment_logos] =>
  125. [debug] => 0
  126. [status_pending] => W
  127. [status_success] => O
  128. [status_canceled] => D
  129. [countries] =>
  130. [min_amount] => 0
  131. [max_amount] => 0
  132. [secure_post] =>
  133. [ipn_test] =>
  134. [no_shipping] => 0
  135. [address_override] => 0
  136. [cost_per_transaction] => 0
  137. [cost_percent_total] => 0
  138. [tax_id] => 0
  139. )
  140. 0.00028419494628906
  141.  
  142. $string = 'paypal_merchant_email="sample@ymail.com"|paypal_verified_only="0"|payment_currency=""|sandbox="1"|sandbox_merchant_email="sample@ymail.com"|payment_logos=""|debug="0"|status_pending="W"|status_success="O"|status_canceled="D"|countries=""|min_amount="0"|max_amount="0"|secure_post=""|ipn_test=""|no_shipping="0"|address_override="0"|cost_per_transaction="0"|cost_percent_total="0"|tax_id=0|';
  143.  
  144. $result = array();
  145. $string = preg_split('/|/', $string);
  146. foreach($string as $key => $value)
  147. {
  148. $value = str_replace('"', '', $value);
  149. $value = preg_split('/=/', $value);
  150. if(strlen($value[0])> 0)
  151. {
  152. $result[$value[0]] = array_key_exists(1, $value) ? $value[1] : NULL;
  153. }
  154. }
  155.  
  156. echo "<pre>";
  157. print_r($result);
  158. echo "</pre>";
  159.  
  160. Array
  161. (
  162. [paypal_merchant_email] => sample@ymail.com
  163. [paypal_verified_only] => 0
  164. [payment_currency] =>
  165. [sandbox] => 1
  166. [sandbox_merchant_email] => sample@ymail.com
  167. [payment_logos] =>
  168. [debug] => 0
  169. [status_pending] => W
  170. [status_success] => O
  171. [status_canceled] => D
  172. [countries] =>
  173. [min_amount] => 0
  174. [max_amount] => 0
  175. [secure_post] =>
  176. [ipn_test] =>
  177. [no_shipping] => 0
  178. [address_override] => 0
  179. [cost_per_transaction] => 0
  180. [cost_percent_total] => 0
  181. [tax_id] => 0
  182. [] =>
  183. )
  184.  
  185. $str = 'a=13|b="string"|';
  186.  
  187. $rawarray = preg_split('/|/', $str, -1, PREG_SPLIT_NO_EMPTY);
  188. $keys = array_map(create_function('$a', '$r = preg_split("/=/", $a); return $r[0];'), $rawarray);
  189. $values = array_map(create_function('$a', '$r = preg_split("/=/", $a, 2); return eval("return $r[1];");'), $rawarray);
  190. $result = array_combine($keys, $values);
  191.  
  192. print_r($result);
  193.  
  194. function get_value_from_string($key, $str) {
  195. return preg_match('/|'.$key.'=([^|]*)/', '|'.$str, $matches) ? eval("return $matches[1];") : null;
  196. }
  197.  
  198. $string = 'paypal_merchant_email="sample@ymail.com"|paypal_verified_only="0"|payment_currency=""|sandbox="1"|sandbox_merchant_email="sample@ymail.com"|payment_logos=""|debug="0"|status_pending="W"|status_success="O"|status_canceled="D"|countries=""|min_amount="0"|max_amount="0"|secure_post=""|ipn_test=""|no_shipping="0"|address_override="0"|cost_per_transaction="0"|cost_percent_total="0"|tax_id=0|';
  199.  
  200. $t = str_getcsv( $string, "|" );
  201.  
  202. $new = array();
  203. array_walk( $t, function( &$a ) use (&$new) {
  204. parse_str( $a, $b); # parses each line, returns key-value
  205. $c = each( $b ); # need to obtain key-value from above
  206. $new[$c["key"]] = $c["value"]; # simple assignment
  207. });
  208.  
  209. Array (
  210. [paypal_merchant_email] => "sample@ymail.com"
  211. [paypal_verified_only] => "0"
  212. [payment_currency] => ""
  213. ...
  214.  
  215. preg_match_all('/|(.*?)="(.*?)"/', '|'.$string, $matches);
  216. $result = array_combine($matches[1], $matches[2]);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement