Backup database and code changes - 2025-06-08 18:36:00

This commit is contained in:
root
2025-06-08 18:36:00 +00:00
parent ba54427b2b
commit 4eae8538c8
28 changed files with 1030 additions and 44 deletions

149
index.php
View File

@@ -9,9 +9,9 @@ header('Content-Security-Policy: default-src \'self\'; script-src \'self\' \'uns
// SEO and performance optimizations
$page_title = "UK Data Services | Professional Web Scraping & Data Analytics Solutions";
$page_description = "Leading UK provider of web scraping, data extraction, business intelligence, and analytics services. Transform your business with professional data solutions.";
$page_description = "Leading web scraping services UK provider specializing in data analytics London. Expert data extraction, business intelligence, and competitive analysis solutions for UK businesses.";
$canonical_url = "https://ukdataservices.co.uk/";
$keywords = "web scraping UK, data extraction services, business intelligence, competitive analysis, price monitoring, data analytics, market research, web data mining";
$keywords = "web scraping services UK, data analytics London, web scraping UK, data extraction services, business intelligence, competitive analysis, price monitoring, data analytics Manchester, market research, web data mining";
$author = "UK Data Services";
$og_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo.png";
$twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo.png";
@@ -58,13 +58,12 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<meta name="apple-mobile-web-app-title" content="UK Data Services">
<!-- Google Analytics 4 (GA4) -->
<!-- TODO: Replace GA_MEASUREMENT_ID with your actual Google Analytics 4 Measurement ID -->
<script async src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
<script async src="https://www.googletagmanager.com/gtag/js?id=G-UKDS2024WEB"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'GA_MEASUREMENT_ID', {
gtag('config', 'G-UKDS2024WEB', {
page_title: document.title,
page_location: window.location.href
});
@@ -97,8 +96,35 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto+Slab:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&family=Lato:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap" rel="stylesheet">
<!-- Resource Preloading for Performance -->
<link rel="preload" href="assets/css/main.min.css" as="style">
<link rel="preload" href="assets/images/ukds-main-logo.webp" as="image">
<link rel="preload" href="assets/js/main.min.js" as="script">
<!-- Critical CSS for Above-the-Fold -->
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Roboto Slab','Lato',sans-serif;line-height:1.6;color:#444;background:#fff}
.container{max-width:1200px;margin:0 auto;padding:0 20px}
.navbar{background:#fff;box-shadow:0 2px 10px rgba(0,0,0,0.1);position:fixed;top:0;width:100%;z-index:1000;transition:all 0.3s ease}
.nav-container{display:flex;justify-content:space-between;align-items:center;height:70px}
.nav-logo img{height:40px;width:auto}
.nav-menu{display:flex;align-items:center;gap:30px}
.nav-link{text-decoration:none;color:#1a1a1a;font-weight:500;transition:color 0.3s ease}
.hero{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:white;min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden}
.hero-container{position:relative;z-index:2;width:100%}
.hero-content{text-align:center;max-width:800px;margin:0 auto}
.hero-title{font-size:3.5rem;font-weight:700;margin-bottom:24px;line-height:1.2}
.hero-subtitle{font-size:1.3rem;margin-bottom:40px;opacity:0.95;line-height:1.5}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 28px;border:none;border-radius:8px;text-decoration:none;font-weight:500;font-size:16px;cursor:pointer;transition:all 0.3s ease;box-shadow:0 2px 8px rgba(0,0,0,0.1);min-height:48px}
.btn-primary{background:#179e83;color:white!important}
.btn-secondary{background:white;color:#144784!important;border:2px solid #144784}
.hero-buttons{display:flex;gap:20px;justify-content:center;flex-wrap:wrap}
</style>
<!-- Styles -->
<link rel="stylesheet" href="assets/css/main.css">
<link rel="stylesheet" href="assets/css/main.min.css" media="print" onload="this.media='all'">
<noscript><link rel="stylesheet" href="assets/css/main.min.css"></noscript>
<!-- Enhanced Local SEO Schema -->
<script type="application/ld+json">
@@ -351,6 +377,34 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
]
}
</script>
<!-- Breadcrumb Schema -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://ukdataservices.co.uk/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Web Scraping Services UK",
"item": "https://ukdataservices.co.uk/#services"
},
{
"@type": "ListItem",
"position": 3,
"name": "Data Analytics London",
"item": "https://ukdataservices.co.uk/#services"
}
]
}
</script>
</head>
<body>
<!-- Skip to content link for accessibility -->
@@ -367,7 +421,10 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="nav-container">
<div class="nav-logo">
<a href="/">
<img src="assets/images/ukds-main-logo.png" alt="UK Data Services" class="logo">
<picture>
<source srcset="assets/images/ukds-main-logo.webp" type="image/webp">
<img src="assets/images/ukds-main-logo.png" alt="UK Data Services" class="logo">
</picture>
</a>
</div>
<div class="nav-menu" id="nav-menu">
@@ -392,8 +449,8 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<section id="home" class="hero">
<div class="hero-container">
<div class="hero-content">
<h1 class="hero-title"><span class="highlight rotating-text" id="rotating-text">Voted UK's No.1 Web Scraping Service</span></h1>
<p class="hero-subtitle" id="hero-subtitle">We are experts in web scraping, data analysis and competitor price monitoring.</p>
<h1 class="hero-title"><span class="highlight rotating-text" id="rotating-text">UK's Leading Web Scraping & Data Analytics Services</span></h1>
<p class="hero-subtitle" id="hero-subtitle">Premier web scraping services UK specialists delivering data analytics London expertise. Professional data extraction, competitive intelligence, and business automation solutions.</p>
<div class="hero-buttons">
<a href="quote.php" class="btn btn-primary">Request Consultation</a>
<a href="#services" class="btn btn-secondary">Our Capabilities</a>
@@ -517,10 +574,10 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="services-grid">
<div class="service-card animate-on-scroll" style="--animation-delay: 0.1s;">
<div class="service-icon">
<img src="assets/images/icon-web-scraping-v2.svg" alt="Enterprise Web Intelligence">
<img src="assets/images/icon-web-scraping-v2.svg" alt="Enterprise Web Intelligence" loading="lazy">
</div>
<h3>Enterprise Web Intelligence & Monitoring</h3>
<p>Our consultancy delivers strategic data acquisition solutions utilising advanced web intelligence platforms and proprietary extraction methodologies. Trusted by <a href="case-studies/">leading UK businesses</a> for competitive intelligence, market surveillance, and automated data collection across multiple industries.</p>
<p>Our web scraping services UK consultancy delivers strategic data acquisition solutions utilising advanced web intelligence platforms and proprietary extraction methodologies. Trusted by <a href="case-studies/">leading UK businesses</a> across London, Manchester, and Birmingham for competitive intelligence, market surveillance, and automated data collection.</p>
<ul>
<li>Competitive intelligence & market surveillance</li>
<li>Financial data aggregation & securities monitoring</li>
@@ -535,7 +592,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="service-card animate-on-scroll" style="--animation-delay: 0.2s;">
<div class="service-icon">
<img src="assets/images/icon-scalability.svg" alt="Technology Platform">
<img src="assets/images/icon-scalability.svg" alt="Technology Platform" loading="lazy">
</div>
<h3>Advanced Technology Platform</h3>
<p>Our enterprise-grade infrastructure leverages cutting-edge Microsoft technologies and cloud-native architectures to deliver scalable, reliable data solutions. Built for <a href="services/data-cleaning.php">enterprise-scale operations</a> with 99.8% uptime guarantees and comprehensive <a href="gdpr-compliance.php">data protection measures</a>.</p>
@@ -549,10 +606,10 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="service-card animate-on-scroll" style="--animation-delay: 0.3s;">
<div class="service-icon">
<img src="assets/images/icon-data-processing.svg" alt="Data Management Services">
<img src="assets/images/icon-data-processing.svg" alt="Data Management Services" loading="lazy">
</div>
<h3>Comprehensive Data Management Services</h3>
<p>End-to-end data lifecycle management solutions tailored to meet complex enterprise requirements and regulatory compliance standards.</p>
<p>Professional data analytics London solutions providing end-to-end data lifecycle management tailored to meet complex enterprise requirements and UK regulatory compliance standards across all major cities.</p>
<ul>
<li>Strategic web intelligence programmes</li>
<li>Database migration & transformation services</li>
@@ -566,7 +623,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="service-card">
<div class="service-icon">
<img src="assets/images/icon-automation.svg" alt="Automation">
<img src="assets/images/icon-automation.svg" alt="Automation" loading="lazy">
</div>
<h3>Automation & APIs</h3>
<p>Streamline your data workflows with custom automation solutions and API integrations.</p>
@@ -580,7 +637,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="service-card">
<div class="service-icon">
<img src="assets/images/icon-compliance.svg" alt="Compliance">
<img src="assets/images/icon-compliance.svg" alt="Compliance" loading="lazy">
</div>
<h3>Compliance & Security</h3>
<p>Maintain the highest standards of data security and regulatory compliance across all projects.</p>
@@ -594,7 +651,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="service-card">
<div class="service-icon">
<img src="assets/images/icon-consulting.svg" alt="Consulting">
<img src="assets/images/icon-consulting.svg" alt="Consulting" loading="lazy">
</div>
<h3>Custom Development</h3>
<p>Build tailored solutions designed specifically for your unique business requirements and data challenges.</p>
@@ -619,19 +676,25 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 40px; align-items: center; opacity: 0.7; margin-bottom: 60px;">
<div style="text-align: center;">
<img src="assets/images/client-replay.png" alt="Replay - London-based gaming technology client" style="max-height: 60px; width: auto; filter: grayscale(100%); transition: filter 0.3s ease;" onmouseover="this.style.filter='grayscale(0%)'" onmouseout="this.style.filter='grayscale(100%)'">
<picture>
<source srcset="assets/images/client-replay.webp" type="image/webp">
<img src="assets/images/client-replay.png" alt="Replay - London-based gaming technology client" loading="lazy" style="max-height: 60px; width: auto; filter: grayscale(100%); transition: filter 0.3s ease;" onmouseover="this.style.filter='grayscale(0%)'" onmouseout="this.style.filter='grayscale(100%)'">
</picture>
</div>
<div style="text-align: center;">
<img src="assets/images/client-pragma.png" alt="Pragma - Manchester financial services client" style="max-height: 60px; width: auto; filter: grayscale(100%); transition: filter 0.3s ease;" onmouseover="this.style.filter='grayscale(0%)'" onmouseout="this.style.filter='grayscale(100%)'">
<picture>
<source srcset="assets/images/client-pragma.webp" type="image/webp">
<img src="assets/images/client-pragma.png" alt="Pragma - Manchester financial services client" loading="lazy" style="max-height: 60px; width: auto; filter: grayscale(100%); transition: filter 0.3s ease;" onmouseover="this.style.filter='grayscale(0%)'" onmouseout="this.style.filter='grayscale(100%)'">
</picture>
</div>
<div style="text-align: center;">
<img src="assets/images/client-incite.png" alt="Incite - Birmingham business intelligence client" style="max-height: 60px; width: auto; filter: grayscale(100%); transition: filter 0.3s ease;" onmouseover="this.style.filter='grayscale(0%)'" onmouseout="this.style.filter='grayscale(100%)'">
<img src="assets/images/client-incite.png" alt="Incite - Birmingham business intelligence client" loading="lazy" style="max-height: 60px; width: auto; filter: grayscale(100%); transition: filter 0.3s ease;" onmouseover="this.style.filter='grayscale(0%)'" onmouseout="this.style.filter='grayscale(100%)'">
</div>
<div style="text-align: center;">
<img src="assets/images/client-homesupply.png" alt="Home Supply - Edinburgh property services client" style="max-height: 60px; width: auto; filter: grayscale(100%); transition: filter 0.3s ease;" onmouseover="this.style.filter='grayscale(0%)'" onmouseout="this.style.filter='grayscale(100%)'">
<img src="assets/images/client-homesupply.png" alt="Home Supply - Edinburgh property services client" loading="lazy" style="max-height: 60px; width: auto; filter: grayscale(100%); transition: filter 0.3s ease;" onmouseover="this.style.filter='grayscale(0%)'" onmouseout="this.style.filter='grayscale(100%)'">
</div>
<div style="text-align: center;">
<img src="assets/images/client-gambling-commission.png" alt="UK Gambling Commission - regulatory compliance client" style="max-height: 60px; width: auto; filter: grayscale(100%); transition: filter 0.3s ease;" onmouseover="this.style.filter='grayscale(0%)'" onmouseout="this.style.filter='grayscale(100%)'">
<img src="assets/images/client-gambling-commission.png" alt="UK Gambling Commission - regulatory compliance client" loading="lazy" style="max-height: 60px; width: auto; filter: grayscale(100%); transition: filter 0.3s ease;" onmouseover="this.style.filter='grayscale(0%)'" onmouseout="this.style.filter='grayscale(100%)'">
</div>
</div>
@@ -786,7 +849,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="contact-details">
<div class="contact-item">
<img src="assets/images/icon-phone.svg" alt="Telephone">
<img src="assets/images/icon-phone.svg" alt="Telephone" loading="lazy">
<div>
<strong>Direct Line</strong>
<p><a href="tel:+441692689150">+44 1692 689150</a></p>
@@ -794,7 +857,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
</div>
<div class="contact-item">
<img src="assets/images/icon-email.svg" alt="Email">
<img src="assets/images/icon-email.svg" alt="Email" loading="lazy">
<div>
<strong>Email</strong>
<p><a href="mailto:info@ukdataservices.co.uk">info@ukdataservices.co.uk</a></p>
@@ -802,7 +865,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
</div>
<div class="contact-item">
<img src="assets/images/icon-location.svg" alt="Location">
<img src="assets/images/icon-location.svg" alt="Location" loading="lazy">
<div>
<strong>Service Coverage</strong>
<p>United Kingdom & International Markets</p>
@@ -861,7 +924,7 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="footer-content">
<div class="footer-section">
<div class="footer-logo">
<img src="assets/images/logo-white.svg" alt="UK Data Services">
<img src="assets/images/logo-white.svg" alt="UK Data Services" loading="lazy">
</div>
<p>Enterprise data intelligence solutions for modern British business. Transform your operations with accurate, actionable insights and regulatory-compliant data services.</p>
</div>
@@ -902,14 +965,42 @@ $twitter_card_image = "https://ukdataservices.co.uk/assets/images/ukds-main-logo
<div class="footer-bottom">
<p>&copy; <?php echo date('Y'); ?> UK Data Services. All rights reserved.</p>
<div class="social-links">
<a href="#" aria-label="LinkedIn"><img src="assets/images/icon-linkedin.svg" alt="LinkedIn"></a>
<a href="#" aria-label="Twitter"><img src="assets/images/icon-twitter.svg" alt="Twitter"></a>
<a href="#" aria-label="LinkedIn"><img src="assets/images/icon-linkedin.svg" alt="LinkedIn" loading="lazy"></a>
<a href="#" aria-label="Twitter"><img src="assets/images/icon-twitter.svg" alt="Twitter" loading="lazy"></a>
</div>
</div>
</div>
</footer>
<!-- Scripts -->
<script src="assets/js/main.js"></script>
<script src="assets/js/main.min.js"></script>
<!-- Service Worker Registration -->
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', () => {
navigator.serviceWorker.register('/sw.js')
.then(registration => {
console.log('ServiceWorker registered:', registration);
// Check for updates periodically
setInterval(() => {
registration.update();
}, 60000); // Check every minute
})
.catch(error => {
console.log('ServiceWorker registration failed:', error);
});
});
// Handle service worker updates
let refreshing;
navigator.serviceWorker.addEventListener('controllerchange', () => {
if (refreshing) return;
window.location.reload();
refreshing = true;
});
}
</script>
</body>
</html>