Новичок
Покинул форум
Сообщений всего: 1
Дата рег-ции: Дек. 2017
Помог: 0 раз(а)
|
Добрый день. Нужен скрипт для сравнения ссылок на изображения в базе и соответственно в папке на сервере. Если ссылки в базе нет а в папке есть это изображение, его с сервера удаляем. в сети нашел несколько похожих скриптов и собрал их в один.
Сам скрипт:
CODE ( htmlphp):
скопировать код в буфер обмена
<? define('DATALIFEENGINE', true); } #позвол¤ем скрипту анализировать картинки без лимита (если их много будет) # ----------------------- декларирование основных параметров ------------------------ #путь к папке с картинками define("IMGDIR", 'uploads/posts/2017-01/thumbs'); #путь к конфигу define("CONF", 'engine/data/dbconfig.php'); define( 'DATALIFEENGINE', true ); #задать произвольный логин и пороль админа define( 'PASSWORD', 'ushkom102030' ); class db{} # ----------------------- проверки ------------------------ die(IMGDIR . ' not found!'); #подключаем длешный конфиг die(CONF .' not found!'); include CONF ; # ----------------------- настройки ------------------------ header("Content-Type: text/html; charset=".COLLATE); # ----------------------- класы и функции ------------------------ class SQL { public $server,$user,$password,$database,$connected; function __construct($server,$password,$database,$user) { $this -> connected = false; $this -> server = $server; $this -> user = $user; $this -> password = $password; $this -> database = $database; } function SetBase($base) { $this->database = trim($base); } function connect() { if ($this->connected) $curent = @mysql_connect ($this->server, $this->user, $this->password); if (!$curent) { $this->connected = false; } if (!$curent) { $this->connected = false; } $this->connected = true; $this->run("SET NAMES ".COLLATE); return $this->connected; } function query($query) { $result = $this->run($query); if (!$result) $d[] = $row; return $d; } function run($query) { if (!$this->connected) $this -> connect(); return $result; } function SimpleQuery($query) { $result = $this->run($query); if (!$result) return $row; return false; } } function IsUsed($name) { global $sql; $data = $sql -> query("select `id` from `" . PREFIX ."_post` where `short_story` like '%$name%' or `full_story` like '%$name%' or `xfields` like '%$name%'"); if (!$data) return false; if (!isset($data[0])) return false; $id = ''; foreach ($data as $c) { $id .= '<b>' . $c['id'] . '</b> , '; } return rtrim($id , ', '); } #--------------------авторизаци¤-------------------------------- if (isset($_POST['Tlogin'])) { if ($_POST['login'] == LOGIN && $_POST['password'] == PASSWORD) $_SESSION['logined'] = true; } if (!isset($_SESSION['logined'])) { #если не залогинен ?> <form method="POST"> LOGIN:</br><input type="text" name="login"></br> PASSWORD:</br><input type="password" name="password"></br> <input type="submit" name="Tlogin"> </form> <? } #всЄ ниже если залогинен #--------------------попытка подключитс¤ к базе---------------- $sql = new SQL( DBHOST , DBPASS , DBNAME , DBUSER ); $error = $sql -> connect(); if (!$sql -> connected) die($error); #--------------главна¤ часть------------- ?> <table border="4"> </tr> <th> название </th> <th> используетс¤ (id) </th> <th> предосмотр </th> <th> ”далить </th> </tr> <? foreach($images as $img) { echo "<tr>"; #name echo "<td><a href='$img' target='blank'>$img</a></td>"; #used $ids = IsUsed($img); if (!$ids) echo "<td><font color='red'>нигде не используется !</font></td>"; else echo "<td>$ids</td>"; echo "<td><img src='$img' height='50px'></img></td><td><a href='?d=".$img."'>Удалить!!!</a><br></td>"; } ?> </table>
Подскажите как можно сделать выборку и выводить только картинки которые не используются, и как их после просмотра можно массово удалить? большое всем спасибо за помощь.
|