Advertisement
Guest User

uncorrect

a guest
Sep 3rd, 2014
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.30 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <title>Price List</title>
  5.     <meta charset="utf-8" />
  6. </head>
  7. <body>
  8. <form method="get" action="#">
  9.     Price List: <textarea name="priceList" rows="15" cols="120">  <table class="priceListTable">
  10.             <tr> <th>Product</th> <th>Category</th> <th>Price</th> <th>Currency</th></tr>
  11.             <tr> <td>8GB DDR3L 1600 KINGSTON SODIMM</td><td>RAM</td><td>87.00</td>  <td>  USD</td></tr>
  12.             <tr> <td>500GB Toshiba, SATA 6Gb/s, 7200rpm, 32MB</td> <td>HDD</td> <td>18.41</td> <td>BGN </td></tr>
  13.             <tr> <td>AMD A10-5800K X4 3.8GHz, 4MB Cache</td><td>CPU</td>   <td> 186.00</td> <td>BGN </td></tr>
  14.             <tr> <td> SSD 2.5&quot;, 120GB, Corsair F120 LS, SATA3</td> <td> HDD</td> <td> 180.50</td> <td> BGN </td>  </tr>
  15.             <tr> <td>500GB Toshiba, SATA 6Gb/s, 7200rpm, 32MB</td> <td>HDD</td> <td>28.41</td> <td>BGN </td> </tr>
  16.             <tr> <td>ASRock B75M-GL R2.0</td><td>motherboard</td> <td>  47.55</td> <td>EUR</td>  </tr>
  17.             <tr> <td>1TB Toshiba, SATA 6Gb/s, 7200rpm, 32MB</td> <td>HDD</td><td> 52.82 </td> <td>EUR</td></tr>
  18.             <tr> <td>16GB Micro SDHC, A-Data, Class10</td><td>RAM   </td><td>15.03</td><td>BGN</td></tr>
  19.             <tr> <td>500GB Toshiba, SATA 6Gb/s, 7200rpm, 32MB</td> <td>HDD</td> <td>38.41</td> <td>BGN </td>    </tr>
  20.         </table></textarea> <br/>
  21.     <input type="submit" value="Send" />
  22. </form>
  23.  
  24. <?php
  25. if (!isset($_GET['priceList'])) die;
  26.  
  27. $inputHtml = $_GET['priceList'];
  28. $pattern = "|<td>\s*(.*?)\s*</td>\s*<td>\s*(.*?)\s*</td>\s*<td>\s*(.*?)\s*</td>\s*<td>\s*(.*?)\s*</td>|";
  29. preg_match_all($pattern, $inputHtml, $matches, PREG_SET_ORDER);
  30. $categories = [];
  31. foreach ($matches as $match) {
  32.     $category = html_entity_decode($match[2]);
  33.     $item = [
  34.         'product' => html_entity_decode($match[1]),
  35.         'price' => html_entity_decode($match[3]),
  36.         'currency' => html_entity_decode($match[4])
  37.     ];
  38.     if (!isset($categories[$category])) {
  39.         $categories[$category] = [];
  40.     }
  41.     array_push($categories[$category], $item);
  42. }
  43.  
  44. ksort($categories);
  45. foreach ($categories as $category => $items) {
  46.     usort($items, function($a, $b) {
  47.         return strcmp($a['product'], $b['product']);
  48.     });
  49.     $categories[$category] = $items;
  50. }
  51.  
  52. echo json_encode($categories);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement