PHP скрипт для видалення посилань на зображення

Невеличкий php скрипт котрий допоможе швидко видалити з таблиці бази даних посиалння на зображення за шаблоном, в моєму випадку в поле body сайту на Drupal 9.

В прикладі ми використовуємо паттерн https://www.domain.com/img_folder як шаблон для src зображень для видалення. Не забудьте додати на початку скрипта дані своєї БД для підключення.


<?php
$conn = new mysqli("localhost", "user", "pass", "db_name");
if ($conn->connect_error) {
   die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT entity_id, body_value FROM node__body WHERE body_value LIKE '%https://www.domain.com/img_folder%'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
   while($row = $result->fetch_assoc()) {
       $new_body_value = preg_replace('/<img[^>]*src="https:\/\/www\.domain\.com\/img_folder[^"]*"[^>]*>/', '', $row["body_value"]);
       $entity_id = (int)$row["entity_id"];
       $new_body_value_escaped = $conn->real_escape_string($new_body_value);
       $update_sql = "UPDATE node__body SET body_value = '$new_body_value_escaped' WHERE entity_id = $entity_id";
       if (!$conn->query($update_sql)) {
           echo "Error updating record: " . $conn->error;
       }
   }
}
$conn->close();
?>

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.
Код мови коментаря.