File: //proc/self/root/proc/thread-self/root/proc/self/root/home/jsaha/public_html/includes/seo.php
<?php
declare(strict_types=1);
function seoScheme(): string
{
return (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? 'https' : 'http';
}
function seoHost(): string
{
return $_SERVER['HTTP_HOST'] ?? 'localhost';
}
function seoBasePath(): string
{
$scriptName = str_replace('\\', '/', $_SERVER['SCRIPT_NAME'] ?? '/index.php');
$basePath = rtrim(str_replace('/' . basename($scriptName), '', $scriptName), '/');
return $basePath === '' ? '' : $basePath;
}
function seoSiteUrl(): string
{
return seoScheme() . '://' . seoHost() . seoBasePath();
}
function seoCurrentUrl(): string
{
$requestUri = $_SERVER['REQUEST_URI'] ?? '/';
return seoScheme() . '://' . seoHost() . $requestUri;
}
function seoAbsoluteUrl(string $relative): string
{
$relative = ltrim($relative, '/');
return seoSiteUrl() . '/' . $relative;
}
function seoEsc(string $value): string
{
return htmlspecialchars($value, ENT_QUOTES, 'UTF-8');
}
function seoDefaultMeta(array $overrides = []): array
{
$defaults = [
'lang' => 'en',
'lang_code' => 'en',
'author' => 'Jyotirmoy Saha',
'owner' => 'Jyotirmoy Saha',
'robots' => 'index, follow',
'revisit_after' => '3 days',
'copyright' => '©Jyotirmoy Saha',
'language' => 'English',
'rating' => 'General',
'identifier_url' => 'https://www.jsaha.in',
'company_website' => 'https://www.jsaha.in',
'company_address' => 'Kolkata, West Bengal',
'title' => 'Jyotirmoy Saha | Software Engineer | IT, Data Science, Blockchain Expert | Professional Portfolio of Jyotirmoy Saha',
'description' => 'Jyotirmoy Saha - B.Tech Software Engineer specializing in IT, Computer Networks, Data Science, Cryptography, and Blockchain. Delivering expert tech solutions.',
'keywords' => 'Jyotirmoy Saha, software engineer, full-stack developer, web developer, portfolio, jsaha, Kolkata, IT, data science, blockchain, cryptography',
'og_image' => seoAbsoluteUrl('assets/images/logo.png'),
'og_type' => 'website',
'og_locale' => 'en_US',
'canonical' => seoCurrentUrl(),
'current_url' => seoCurrentUrl(),
'dc_language' => 'EN-US',
];
return array_replace($defaults, $overrides);
}
function seoRenderMeta(array $overrides = []): void
{
$meta = seoDefaultMeta($overrides);
?>
<meta charset="utf-8">
<meta content="width=device-width, initial-scale=1.0, user-scalable=1.0, minimum-scale=1.0, maximum-scale=1.0" name="viewport">
<meta name="langCode" content="<?= seoEsc($meta['lang_code']); ?>">
<meta name="author" content="<?= seoEsc($meta['author']); ?>">
<meta name="owner" content="<?= seoEsc($meta['owner']); ?>">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="robots" content="<?= seoEsc($meta['robots']); ?>">
<meta name="revisit-after" content="<?= seoEsc($meta['revisit_after']); ?>">
<meta name="copyright" content="<?= seoEsc($meta['copyright']); ?>">
<meta name="language" content="<?= seoEsc($meta['language']); ?>">
<meta name="rating" content="<?= seoEsc($meta['rating']); ?>">
<meta name="url" content="<?= seoEsc($meta['current_url']); ?>">
<meta name="identifier-URL" content="<?= seoEsc($meta['identifier_url']); ?>">
<meta name="title" content="<?= seoEsc($meta['title']); ?>">
<meta name="keywords" content="<?= seoEsc($meta['keywords']); ?>">
<meta name="description" content="<?= seoEsc($meta['description']); ?>">
<meta property="og:site_name" content="<?= seoEsc($meta['title']); ?>">
<meta property="og:image" content="<?= seoEsc($meta['og_image']); ?>">
<meta property="og:image:width" content="400">
<meta property="og:image:height" content="400">
<meta property="og:type" content="<?= seoEsc($meta['og_type']); ?>">
<meta property="og:locale" content="<?= seoEsc($meta['og_locale']); ?>">
<meta property="og:title" content="<?= seoEsc($meta['title']); ?>">
<meta property="og:description" content="<?= seoEsc($meta['description']); ?>">
<meta property="og:url" content="<?= seoEsc($meta['current_url']); ?>">
<meta name="dc.creator" content="<?= seoEsc($meta['author']); ?>">
<meta name="dc.publisher" content="<?= seoEsc($meta['owner']); ?>">
<meta name="dc.contributors" content="<?= seoEsc($meta['owner']); ?>">
<meta name="dc.identifier" content="<?= seoEsc($meta['current_url']); ?>">
<meta name="dc.source" content="<?= seoEsc($meta['company_website']); ?>">
<meta name="dc.language" content="<?= seoEsc($meta['dc_language']); ?>">
<meta name="dc.relation" content="<?= seoEsc($meta['company_website']); ?>">
<title><?= seoEsc($meta['title']); ?></title>
<link rel="icon" href="<?= seoEsc($meta['og_image']); ?>" type="image/x-icon" sizes="16x16">
<link rel="icon" href="<?= seoEsc($meta['og_image']); ?>" type="image/x-icon" sizes="32x32">
<link rel="icon" href="<?= seoEsc($meta['og_image']); ?>" type="image/x-icon" sizes="48x48">
<link rel="canonical" href="<?= seoEsc($meta['canonical']); ?>">
<?php
}