curlService = $curlService; } protected function configure(): void { } protected function execute(InputInterface $input, OutputInterface $output): int { $io = new SymfonyStyle($input, $output); // $this->staticSiteBackupManager->deleteOld(); // $staticSiteBackupResult = $this->staticSiteBackupManager->run(); // print_r($staticSiteBackupResult->toArray()); // if ($staticSiteBackupResult->criticalError == '') { // $io->success('Static site backup is complete.'); // return Command::SUCCESS; // } $retailers = []; //$postcodes = explode(' ', 'L1 M1 B1 LS1 S1 NG1 LE1 CV1 DE1 ST1 PR1 BB1 LA1 CA1 NE1 SR1 DH1 TS1 YO1 HG1 DN1 HU1 WF1 BD1 LN1 PE1 NN1 OX1 RG1 GU1 PO1 SO1 BN1 CT1 ME1 BS1 BA1 EX1 PL1 TR1 TA1 EH1 G1 AB1 DD1 IV1 FK1 PA1 CF10 SA1 LL11 NP20 BT1 BT48'); $postcodes = [ 'L1' => ['lat' => 53.4046, 'lng' => -2.9779], 'M1' => ['lat' => 53.4794, 'lng' => -2.2453], 'B1' => ['lat' => 52.4796, 'lng' => -1.9080], 'LS1' => ['lat' => 53.7997, 'lng' => -1.5492], 'S1' => ['lat' => 53.3811, 'lng' => -1.4701], 'NG1' => ['lat' => 52.9548, 'lng' => -1.1581], 'LE1' => ['lat' => 52.6369, 'lng' => -1.1398], 'CV1' => ['lat' => 52.4068, 'lng' => -1.5197], 'DE1' => ['lat' => 52.9225, 'lng' => -1.4746], 'ST1' => ['lat' => 53.0255, 'lng' => -2.1753], 'PR1' => ['lat' => 53.7632, 'lng' => -2.7031], 'BB1' => ['lat' => 53.7486, 'lng' => -2.4831], 'LA1' => ['lat' => 54.0466, 'lng' => -2.7990], 'CA1' => ['lat' => 54.8925, 'lng' => -2.9329], 'NE1' => ['lat' => 54.9783, 'lng' => -1.6178], 'SR1' => ['lat' => 54.9069, 'lng' => -1.3838], 'DH1' => ['lat' => 54.7761, 'lng' => -1.5733], 'TS1' => ['lat' => 54.5742, 'lng' => -1.2349], 'YO1' => ['lat' => 53.9590, 'lng' => -1.0815], 'HG1' => ['lat' => 53.9921, 'lng' => -1.5418], 'DN1' => ['lat' => 53.5228, 'lng' => -1.1335], 'HU1' => ['lat' => 53.7443, 'lng' => -0.3353], 'WF1' => ['lat' => 53.6833, 'lng' => -1.4977], 'BD1' => ['lat' => 53.7950, 'lng' => -1.7594], 'LN1' => ['lat' => 53.2344, 'lng' => -0.5386], 'PE1' => ['lat' => 52.5739, 'lng' => -0.2502], 'NN1' => ['lat' => 52.2405, 'lng' => -0.9027], 'OX1' => ['lat' => 51.7520, 'lng' => -1.2577], 'RG1' => ['lat' => 51.4543, 'lng' => -0.9781], 'GU1' => ['lat' => 51.2362, 'lng' => -0.5704], 'PO1' => ['lat' => 50.7989, 'lng' => -1.0912], 'SO1' => ['lat' => 50.9097, 'lng' => -1.4044], 'BN1' => ['lat' => 50.8225, 'lng' => -0.1372], 'CT1' => ['lat' => 51.2798, 'lng' => 1.0836], 'ME1' => ['lat' => 51.3790, 'lng' => 0.5217], 'BS1' => ['lat' => 51.4545, 'lng' => -2.5879], 'BA1' => ['lat' => 51.3811, 'lng' => -2.3590], 'EX1' => ['lat' => 50.7184, 'lng' => -3.5339], 'PL1' => ['lat' => 50.3714, 'lng' => -4.1427], 'TR1' => ['lat' => 50.2632, 'lng' => -5.0510], 'TA1' => ['lat' => 51.0153, 'lng' => -3.1023], 'EH1' => ['lat' => 55.9533, 'lng' => -3.1883], 'G1' => ['lat' => 55.8609, 'lng' => -4.2514], 'AB1' => ['lat' => 57.1497, 'lng' => -2.0943], 'DD1' => ['lat' => 56.4620, 'lng' => -2.9707], 'IV1' => ['lat' => 57.4778, 'lng' => -4.2247], 'FK1' => ['lat' => 55.9990, 'lng' => -3.7843], 'PA1' => ['lat' => 55.8467, 'lng' => -4.4236], 'CF10' => ['lat' => 51.4816, 'lng' => -3.1791], 'SA1' => ['lat' => 51.6214, 'lng' => -3.9436], 'LL11' => ['lat' => 53.0464, 'lng' => -2.9916], 'NP20' => ['lat' => 51.5842, 'lng' => -2.9977], 'BT1' => ['lat' => 54.5973, 'lng' => -5.9301], 'BT48' => ['lat' => 54.9970, 'lng' => -7.3090], ]; foreach ($postcodes as $postcode) { //$url = "https://www.duravit.co.uk/html/ajax:retailersearch.uk-en.html?f_country=United%20Kingdom&f_distance=50&f_name=&f_zipOrCity=$postcode&retailerprofile=link&f_artisanLine=false&f_sensowashCashback=false"; $url = "https://www.villeroy-boch.co.uk/mobify/proxy/api/custom/storelocator/v1/organizations/f_ecom_blgb_prd/searchStoresWithCoordinates?siteId=GBR&locale=en-GB&c_roomId=bath&c_latitude=".$postcode['lat']."&c_longitude=".$postcode['lng']; $url = escapeshellarg($url); $header = '--header="Accept-Encoding: identity" --header="Accept-Language: en-GB,en-US;q=0.9,en;q=0.8" --header="Authorization: Bearer eyJ2ZXIiOiIxLjAiLCJqa3UiOiJzbGFzL3Byb2QvYmxnYl9wcmQiLCJraWQiOiIzMGFmMTliNS03NTBiLTRhNmUtOTAxMC1mM2UzZDRiY2ExNmMiLCJ0eXAiOiJqd3QiLCJjbHYiOiJKMi4zLjQiLCJhbGciOiJFUzI1NiJ9.eyJhdXQiOiJHVUlEIiwic2NwIjoic2ZjYy5zaG9wcGVyLW15YWNjb3VudC5iYXNrZXRzIHNmY2Muc2hvcHBlci1kaXNjb3Zlcnktc2VhcmNoIHNmY2Muc2hvcHBlci1teWFjY291bnQucGF5bWVudGluc3RydW1lbnRzIHNmY2Muc2hvcHBlci1jdXN0b21lcnMubG9naW4gc2ZjYy5zaG9wcGVyLW1jcGFnZW50IGNfZ29vZ2xlX3Igc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5vcmRlcnMgc2ZjYy5zaG9wcGVyLXByb2R1Y3RsaXN0cyBzZmNjLnNob3BwZXItcHJvbW90aW9ucyBjX3ByZWZzX3Igc2ZjYy5zZXNzaW9uX2JyaWRnZSBzZmNjLnNob3BwZXItbXlhY2NvdW50LnBheW1lbnRpbnN0cnVtZW50cy5ydyBjX2NvdXBvbnNfciBjX2Jpc19yIGNfYmFza2V0X3Igc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5wcm9kdWN0bGlzdHMgY19zZW9fciBzZmNjLnNob3BwZXItY2F0ZWdvcmllcyBjX21jcG9pbnRzX3Igc2ZjYy5zaG9wcGVyLW15YWNjb3VudCBzZmNjLnNob3BwZXItbXlhY2NvdW50LmFkZHJlc3NlcyBzZmNjLnNob3BwZXItcHJvZHVjdHMgc2ZjYy5zaG9wcGVyLW15YWNjb3VudC5ydyBjX3ZhbGlkYXRpb25zX3Igc2ZjYy5zaG9wcGVyLXN0b3JlcyBjX2N1c3RvbU9ial9yIHNmY2Muc2hvcHBlci1jb250ZXh0LnJ3IHNmY2Muc2hvcHBlci1iYXNrZXRzLW9yZGVycyBzZmNjLnNob3BwZXItY3VzdG9tZXJzLnJlZ2lzdGVyIGNfY3VzdG9tZXJncm91cHNfciBjX3BkcGN1c3RvbV9yIHNmY2Muc2hvcHBlci1teWFjY291bnQuYWRkcmVzc2VzLnJ3IHNmY2Muc2hvcHBlci1teWFjY291bnQucHJvZHVjdGxpc3RzLnJ3IHNmY2Muc2hvcHBlci1iYXNrZXRzLW9yZGVycy5ydyBjX2dldFN0b3Jlc19yIHNmY2Muc2hvcHBlci1jdXN0b20tb2JqZWN0cy5PZmZsaW5lQ291cG9uUmVzcG9uc2VzIHNmY2Muc2hvcHBlci1naWZ0LWNlcnRpZmljYXRlcyBjX3NlYXJjaF9yIGNfb3JkZXJfciBzZmNjLnNob3BwZXItcHJvZHVjdC1zZWFyY2ggY19naWZ0Y2FyZF9yIHNmY2Muc2hvcHBlci1zZW8gY19jdXN0b21lcl9yIiwic3ViIjoiY2Mtc2xhczo6YmxnYl9wcmQ6OnNjaWQ6NzE5MmRlYTQtOGMyYy00NTY0LWI4ZTUtN2M3NGU1YTI2ZWJiOjp1c2lkOmZkMjYyMjZiLTI4NmYtNGEzMS1iODExLTkxZTJhNzJkMjZkNCIsImN0eCI6InNsYXMiLCJpc3MiOiJzbGFzL3Byb2QvYmxnYl9wcmQiLCJpc3QiOjEsImRudCI6IjAiLCJhdWQiOiJjb21tZXJjZWNsb3VkL3Byb2QvYmxnYl9wcmQiLCJuYmYiOjE3NzQ1Mjg2MzIsInN0eSI6IlVzZXIiLCJpc2IiOiJ1aWRvOnNsYXM6OnVwbjpHdWVzdDo6dWlkbjpHdWVzdCBVc2VyOjpnY2lkOmFieEtvV2xIZ1dsS2dSa0hFMHhHWVl3cmtWOjpjaGlkOkdCUiIsImV4cCI6MTc3NDUzMDQ2MiwiaWF0IjoxNzc0NTI4NjYyLCJqdGkiOiJDMkMxNzQ5MTQ0MzE2MC02MjcxNTQ3NzMxNjgzODAzODg1NDAxODg5OCJ9.FjVT3fhan8LE5bCIbLEjicIsapSOACrMOglVreE56VI6luaNmdVeDdYayykgYqd29COVYMEshRb2ejv0gozZBA" --header="Cache-Control: no-cache" --header="Cookie: dwanonymous_d42fa680d060cf9b9dd97823023eeeed=abIm3iIFL7fUt4O3J1xyoRQy1L; _gcl_au=1.1.355210628.1773317933; _ga=GA1.1.2054946657.1773317933; FPID=FPID2.3.V1KmbEyA8qWlsIlAhM6aatTep%2FDvKyfTZAL0VnCZfBQ%3D.1773317933; kameleoonVisitorCode=5qie8xiepi4g93mh; crl8.fpcuid=3f594d64-ca11-47ec-b208-f93d424cea9e; _fbp=fb.2.1773317933524.845364504780176410; NoCookie=true; marketingPopupOpened=1; cqcid=abIm3iIFL7fUt4O3J1xyoRQy1L; cquid=||; usid_GBR=fd26226b-286f-4a31-b811-91e2a72d26d4; __cf_bm=SGh2dNfMouz9uP4wjlW2NVKXuZiodnRjZkPewYD9eF4-1774525938.957408-1.0.1.1-lbxWPF3jeTrkpoVOhhvZ3IQejRYGAE9JdqqtXEPBfVATT623pbD1h1KaazRQUzWAtITKwxiEcUarH8S7_BIwIxUikWW3X0PAJTpAVhSzeHaOw.hN9U2OKzGaRa1E5EGz; cc-nx-g_GBR=TRcuYat5nMmOp3DQdiOyCPFQsXpvful5g6G0cXBMkmw; dwac_790a5b45bf81cf038641b4220a=C4utPYIFaOWoXpqWXuXH7v366iMeXCu5rrw%3D|dw-only|||GBP|false|Europe%2FLondon|true; sid=C4utPYIFaOWoXpqWXuXH7v366iMeXCu5rrw; dwsid=c-cRNFJANJzfLfY88zRrfoWWVirOGXfA2c-T4l62ImnYhkySXhCnI0OVGQjgkhR1NlRufkOv7wsnvaql7FNL2Q==; dw_dnt=0; FPLC=jKZZAKkanRB%2FNqlbZUJs3uTdIz%2FRZ3OcA8EUeo9MzdEQxgheOlAcKJjtw%2BqP1PWD9baxXgpp3SYXvDDnco5CmZY%2BhVeqjVQAOrxXyZgN1eSdo1jknb%2BDvzK0C1fxbg%3D%3D; _uetsid=3ed2aff0290a11f1b85295c64d79154d; _uetvid=a27f1d801e0d11f1b77d1b5f183483af; _ga_XM1GSBGRY8=GS2.1.s1774525939$o5$g1$t1774526091$j60$l0$h668660066; _ga_Z5YQHCDSYR=GS2.1.s1774525940$o5$g1$t1774526091$j60$l0$h0; _ga_META123456=GS2.1.s1774525940$o5$g1$t1774526091$j60$l0$h1759054067" --header="Pragma: no-cache" --header="Referer: https://www.villeroy-boch.co.uk/" --header="Sec-CH-UA: \"Not:A-Brand\";v=\"99\", \"Google Chrome\";v=\"145\", \"Chromium\";v=\"145\"" --header="Sec-CH-UA-Mobile: ?0" --header="Sec-CH-UA-Platform: \"macOS\"" --header="Sec-Fetch-Dest: empty" --header="Sec-Fetch-Mode: cors" --header="Sec-Fetch-Site: same-origin" --header="User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/145.0.0.0 Safari/537.36"'; $command = "wget -N -O - $url $header"; $output = ''; $content = ''; exec($command, $output, $returnCode); while ($output == '') { sleep(1); } $content = implode($output); $___retailers = json_decode($content, true); // add true, will handle as associative array $retailers[] = $___retailers; /* //$regexp = '()(.*)(
.*<\/h2>)|(

)(.*)(<\/h2>)/iU", $profileContent, $___matches)) { if (isset($___matches[2]) && $___matches[2]) { $name = trim(html_entity_decode(strip_tags($___matches[2]))); } else if (isset($___matches[5]) && $___matches[5]) { $name = trim(html_entity_decode(strip_tags($___matches[5]))); } } if (preg_match("/(

.*
)(.*)(<\/div>)|(

.*

)(.*)(<\/p>)/isU", $profileContent, $___matches)) { $index = 0; if (isset($___matches[2]) && $___matches[2]) { $index = 2; } else if (isset($___matches[5]) && $___matches[5]) { $index = 5; } if ($index > 0) { $address = trim(html_entity_decode(strip_tags($___matches[$index]))); $address = preg_replace('/\s+/', ' ', $address); if (preg_match("/((GIR 0AA)|((([A-PR-UWYZ][0-9][0-9]?)|(([A-PR-UWYZ][A-HK-Y][0-9][0-9]?)|(([A-PR-UWYZ][0-9][A-HJKSTUW])|([A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRVWXY])))) [0-9][ABD-HJLNP-UW-Z]{2}))/i", $address, $___matches)) { if (isset($___matches[0]) && $___matches[0]) { $postcode = trim(html_entity_decode(strip_tags($___matches[0]))); $address = preg_replace("/$postcode/", '', $address); } } } } if (preg_match("/(Phone:.*)()/isU", $profileContent, $___matches)) { if (isset($___matches[3]) && $___matches[3]) { $tel = trim(html_entity_decode(strip_tags($___matches[3]))); } } if (preg_match("/(Phone:.*