X
Меню сайта
GreenB
Войдите с помощью одной из соцсетей
Или с помощью нашего сайта
Зарегистрироваться Войти
Обратная связь

Обратная связь

Удаление не рабочих ссылок в php

Не рабочие ссылки - это довольно распространенная проблема на веб-страницах. Такие ссылки могут возникать по разным причинам, например:

Изменение адреса страницы, на которую ведет ссылка

Удаление страницы

Ошибки при написании URL ссылки

Использование ссылок на сайты, которые больше не существуют или не работают

Наличие большого количества не рабочих ссылок на страницах сайта может негативно влиять на его репутацию и поисковую оптимизацию, поэтому важно периодически проверять работоспособность ссылок на своем сайте.

Вот небольшой код для проверки и удаления не рабочих ссылок в столбце 'text' таблицы 'content' в базе данных MySQL с использованием PDO , язык программирования PHP. 

// Подключение к базе данных
$dsn = 'mysql:host=хост;dbname=имя_бд';
$username = 'имя_пользователя';
$password = 'пароль';
$options = array(
    PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
);

try {
    $pdo = new PDO($dsn, $username, $password, $options);
} catch(PDOException $e) {
    echo "Ошибка подключения: " . $e->getMessage();
}

// Выборка всех записей из таблицы 'content'
$sql = "SELECT * FROM content";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Проверка каждой записи на наличие не рабочих ссылок
foreach ($rows as $row) {
    $text = $row['text'];
    $doc = new DOMDocument();
    $doc->loadHTML($text);

    $links = $doc->getElementsByTagName('a');

    foreach ($links as $link) {
        $url = $link->getAttribute('href');
        if (!filter_var($url, FILTER_VALIDATE_URL)) {
            // URL некорректен
            $text = str_replace($link->nodeValue, '', $text);
        } else {
            // Проверка доступности URL
            $headers = @get_headers($url);
            if (!$headers || strpos($headers[0], '404') !== false) {
                // URL не доступен
                $text = str_replace($link->nodeValue, '', $text);
            }
        }
    }

    // Обновление записи в базе данных
    $id = $row['id'];
    $sql = "UPDATE content SET text = :text WHERE id = :id";
    $stmt = $pdo->prepare($sql);
    $stmt->execute(array(
        ':text' => $text,
        ':id' => $id,
    ));
}

Код выбирает все записи из таблицы 'content' и для каждой записи проверяет все ссылки в столбце 'text'.

Если ссылка некорректна или не доступна, она удаляется из текста записи. Обновленный текст записи сохраняется в базе данных.

Нам важна ваша реакция

🔥
0
🚀
0
0
👎
0
Новое на сайте