Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html>
- <head>
- <title>Price List</title>
- <meta charset="utf-8" />
- </head>
- <body>
- <form method="get" action="#">
- Price List: <textarea name="priceList" rows="15" cols="120"> <table class="priceListTable">
- <tr> <th>Product</th> <th>Category</th> <th>Price</th> <th>Currency</th></tr>
- <tr> <td>8GB DDR3L 1600 KINGSTON SODIMM</td><td>RAM</td><td>87.00</td> <td> USD</td></tr>
- <tr> <td>500GB Toshiba, SATA 6Gb/s, 7200rpm, 32MB</td> <td>HDD</td> <td>18.41</td> <td>BGN </td></tr>
- <tr> <td>AMD A10-5800K X4 3.8GHz, 4MB Cache</td><td>CPU</td> <td> 186.00</td> <td>BGN </td></tr>
- <tr> <td> SSD 2.5", 120GB, Corsair F120 LS, SATA3</td> <td> HDD</td> <td> 180.50</td> <td> BGN </td> </tr>
- <tr> <td>500GB Toshiba, SATA 6Gb/s, 7200rpm, 32MB</td> <td>HDD</td> <td>28.41</td> <td>BGN </td> </tr>
- <tr> <td>ASRock B75M-GL R2.0</td><td>motherboard</td> <td> 47.55</td> <td>EUR</td> </tr>
- <tr> <td>1TB Toshiba, SATA 6Gb/s, 7200rpm, 32MB</td> <td>HDD</td><td> 52.82 </td> <td>EUR</td></tr>
- <tr> <td>16GB Micro SDHC, A-Data, Class10</td><td>RAM </td><td>15.03</td><td>BGN</td></tr>
- <tr> <td>500GB Toshiba, SATA 6Gb/s, 7200rpm, 32MB</td> <td>HDD</td> <td>38.41</td> <td>BGN </td> </tr>
- </table></textarea> <br/>
- <input type="submit" value="Send" />
- </form>
- <?php
- if (!isset($_GET['priceList'])) die;
- $input = preg_replace("/\r?\n/m","", $_GET['priceList']);
- $input = preg_replace("/<\/tr>/","</tr>\n",$input);
- $pattern = "/<tr>\s*<td>(.*?)<\/td>\s*<td>(.*?)<\/td>?\s*<td>(.*?)<\/td>?\s*<td>(.*?)<\/td>?\s*<\/tr>/im";
- preg_match_all($pattern,$input,$match,PREG_SET_ORDER);
- $obj = [];
- for ($i=0; $i<count($match); $i++) {
- $match[$i] = array_map('trim',$match[$i]);
- $arr = ["product"=>html_entity_decode($match[$i][1]), "price"=>$match[$i][3], "currency"=>$match[$i][4], "id"=>$i];
- if (isset($obj[$match[$i][2]])) {
- array_push($obj[$match[$i][2]],$arr);
- } else {
- $obj[$match[$i][2]] = [$arr];
- }
- }
- function mySort($a, $b) {
- if ($a['product'] == $b['product']) return ($a['id']>$b['id']) ? 1 : -1;
- return ($a['product'] > $b['product']) ? 1 : -1;
- }
- foreach (array_keys($obj) as $key) {
- uasort($obj[$key],'mySort');
- $obj[$key] = array_values($obj[$key]);
- foreach ($obj[$key] as &$arr) {
- unset($arr['id']);
- }
- }
- ksort($obj,SORT_ASC);
- echo json_encode($obj);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement