🢂Sprawdzenie w PHP czy obrazy na stronie WWW są SEO frendly

Ta funkcja może być używana do weryfikacji przyjaznych dla wyszukiwarek URL-i przed ich wprowadzeniem do systemu.

W skrócie, kod działa w następujący sposób:

Funkcja ta analizuje następujące aspekty obrazów:

  • Liczba obrazów na stronie
  • Liczba obrazów z atrybutem title
  • Liczba obrazów bez atrybutu alt
  • Ilość liter w nazwie pliku obrazu
  • Procent liter w nazwie pliku obrazu
  • Czy nazwa pliku obrazu jest przyjazna dla wyszukiwarek
  • Funkcja ta może być wykorzystana do analizy jakości obrazów na stronie internetowej. Może być również wykorzystana do poprawy SEO strony internetowej, na przykład poprzez dodanie atrybutu title do wszystkich obrazów.

Na przykład, jeśli strona internetowa zawiera dwa obrazy, z których jeden ma atrybut title, a drugi nie ma atrybutu alt, kod zwróci następującą tablicę:

[
    'liczbaObrazow' => 2,
    'liczbaObrazowZTitle' => 1,
    'liczbaObrazowBezTitle' => 1,
    'liczbaObrazowBezAlt' => 1,
    'obrazyZWiekszaIlosciaLiter' => 0,
    'obrazyZMniejszaIloscLiter' => 1,
    'obrazySEONieFriendlyNazwy' => ['nazwa_pliku_obrazu_bez_przyjaznej_nazwy']
]

Funkcja

function checkSeoImg($html)
{

    $dom = new DOMDocument();
    @$dom->loadHTML($html);
    $obrazy = $dom->getElementsByTagName('img');
    $liczbaObrazow = 0;
    $liczbaObrazowZTitle = 0;
    $liczbaObrazowBezTitle = 0;
    $liczbaObrazowBezAlt = 0;
    $obrazyZWiekszaIlosciaLiter = 0;
    $obrazyZMniejszaIlosciaLiter = [];
    $obrazySEOFriendlyIle = 0;
    $ProcentliterWNazwie = 70;
    $obrazySEONieFriendlyNazwy = [];
    foreach ($obrazy as $obraz) {
        $liczbaObrazow++;
        $title = $obraz->getAttribute('title');
        $alt = $obraz->getAttribute('alt');
        $src = $obraz->getAttribute('src');
        $nazwaPliku = basename($src);
        $nazwaPliku = pathinfo($nazwaPliku, PATHINFO_FILENAME);
        if (!empty($title)) {
            $liczbaObrazowZTitle++;
        } else {
            $liczbaObrazowBezTitle++;
        }
        if (empty($alt)) {
            $liczbaObrazowBezAlt++;
        }
        $szukana = "data:";
        if (preg_match("/{$szukana}/i", $nazwaPliku)) {
            preg_match_all('/[a-zA-Z]/', $nazwaPliku, $litery);
            preg_match_all('/\d/', $nazwaPliku, $cyfry);
            $dlugoscNazwy = strlen($nazwaPliku);
            $procentLiter = (count($litery[0]) / $dlugoscNazwy) * 100;
            $procentLiter = round($procentLiter, 0);
            // Sprawdzenie czy procent liter w nazwie pliku jest większy niż 50%
            if ($procentLiter > $ProcentliterWNazwie) {
                $obrazyZWiekszaIlosciaLiter++;
            } else {
                $obrazyZMniejszaIlosciaLiter[] = [
                    "nazwa" => $nazwaPliku,
                    "dlugoscNazwy" => $dlugoscNazwy,
                    "litery" => count($litery[0]),
                    "procentLiter" => $procentLiter,
                    "cyfry1" => count($cyfry[0]),
                ];
            }
            // Sprawdza, czy URL zawiera niepożądane znaki
            if (preg_match('/[^-a-zA-Z0-9_]/', parse_url($nazwaPliku, PHP_URL_PATH))) {
                $obrazySEOFriendlyIle++;
            } else {
                $obrazySEONieFriendlyNazwy[] = $nazwaPliku;
            }
        }
    }
    return [
        'liczbaObrazow' => $liczbaObrazow,
        'liczbaObrazowZTitle' => $liczbaObrazowZTitle,
        'liczbaObrazowBezTitle' => $liczbaObrazowBezTitle,
        'liczbaObrazowBezAlt' => $liczbaObrazowBezAlt,
        'obrazyZWiekszaIlosciaLiter' => $obrazyZWiekszaIlosciaLiter,
        'obrazyZMniejszaIlosciaLiter' => $obrazyZMniejszaIlosciaLiter,
        'obrazySEONieFriendlyNazwy' => $obrazySEONieFriendlyNazwy,
    ];
}