speed-core

speed-core
Рейтинг
33
Регистрация
30.03.2014

Вот пример кода - Он берет с бД все изображения проверяет их существование, и в случаи если фаил был не обнаружен - удалит его. "Загружаем в корень - меняем значение БД"

На всякий сделайте бейкап данной таблици - так как если путь до файла не верный "от корня сайта", то он его удалит.

zip dle_code.zip
$query=mysql_query("select * from dle_images");
//Начинаем проверку всех файлов
while ($array=mysql_fetch_array($query)) {
//Путь к файлу
$url=$array['images'];
//Проверка на существование файла
if (!file_exists ($url)) {
//Если нашли не первый не существующий фаил
if (isset($id_del)) {
$id_del.=','.$array['id'];
} else {
$id_del=$array['id'];
}
}
}
//Если нашли не существующие файлы
if (isset($id_del)) {
if (mysql_query("delete from dle_images where id in (".$id_del.")")) {
echo "Все гуд удалилось";
} else {
echo "Ошибка при удалении";
}
} else {
echo "Нет записей для удаления";
}

Готово, незабываем подключиться к самой БД


$ip='localhost';
$user='root';
$password='root';
$namedb='название бд';

$connect=mysql_connect($ip,$user,$password);
mysql_select_db($namedb,$connect);
и на всякий
mysql_query('SET NAMES utf8;',$connect);

учтите что путь $array['images'] - относительно вашего нахождения.

если файлы находятся дальше например: /uploads/posts/ ****

то меняем строку

$url=$array['images'];

на

$url='/uploads/posts/'.$array['images'];

Это php код.

Я не знаю как выглядит у Вас БД. Поэтому писал названия таблиц и полей от себя. Откройте в phpmyadmin таблицу которая содержит записи с изображениями и сообщите мне инфу или скрин(тогда отредактирую код)

joost

есть еще куча способов.

Я думаю при помощи php вытащить контент с другова сайта проблем не составит.

тем самым вы скроете первоисточник, и покажете нужную инфу.

Хотя можете дальше думать над загрузкой инфы при помощи JS - там еще не один способ есть ;)

Мой пример рабочий, как и другие выше сказанные, только допилить под себя.

Вытаскиваем все файлы:

$query=mysql_query("select * from table_images");
//Начинаем проверку всех файлов
while ($array=mysql_fetch_array($query)) {
//Путь к файлу
$url=$array['url'];
//Проверка на существование файла
if (!file_exists ($url)) {
//Если нашли не первый не существующий фаил
if (isset($perviy)) {
$id_del.=','.$array['id'];
} else {
$id_del=$array['id'];
}
}
}
//Если нашли не существующие файлы
if (isset($id_del)) {
if (mysql_query("delete from table_images where id in (".$id_del.")")) {
echo "Все гуд удалилось";
} else {
echo "Ошибка при удалении";
}
} else {
echo "Нет записей для удаления";
}

где table_images - таблица с изображениями

$url=$array['url']; - вытаскиваем с таблици инфу где должен быть сохранен фаил "папка и название файла"

$array['id'] - это ид элемента (файла) если надо удалить из бд его.

В общем все что нужно, это знать структуру таблиц.

joost

не так сделал :) я же сказал внутренний фаил, который будет брать инфу с внешнего.

пример

<?php

$text=file_get_contents('http://google.ru');

echo $text;
?>

Архив new.zip содержит тестовые файлы.

Пример загрузки внешних данных - заменяем фаил code.php из архива new на фаил из архива code.zip

zip code.zip

joost

Создаем php фаил (code.php) - в нем прописываем загрузку инфы откуда хотим "внешний сервер, бд, внутренняя инфа"

подключаем jquery на странице с html

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>

пишем код обращения к внутреннему файлу

<script type="text/javascript">
$(document).ready(function(){
//Прячем элемент с ид текст
document.getElementById('text').style.display='none';
//выполняем сам запрос
$.ajax({
//тип POST
type: "POST",
//адрес куда будем слать
url: "code.php",
//тип параметров
dataType : "html",
//выполняем, если запрос прошел успешно
success: function(data){
//записуем результат ответа с php файла в нужный нам елемент
$('#text').html(data);
document.getElementById('text').style.display='block';
},
//виполняем, если возникла ошибка
failure: function() {
alert("Касяк отправки");
}
});
return false;
});
</script>

и ставим див куда загружать инфу полученную из code.php

<div id='text'>Тут будет текст</div>

Узнаем какой ID у нашего элемента. Для дальнейших действий.

$(this).attr('id')

если надо взять последующий элемент после нажатого то вот:

$(this).next('#id')

Больше информации предоставьте, что к чему у Вас там.

а если url: "scripte.php", на внешний ресурс? будет работать?

а почему не должно? :)

На крайний в файле php внутри, пропишите - загрузку данных с внешнего сервера. Он точно сможет )

типо того в JS


<script type="text/javascript">
$(document).ready(function(){
//Прячем элемент с ид текст
document.getElementById('text').style.display='none';
//выполняем сам запрос
$.ajax({
//тип POST
type: "POST",
//адрес куда будем слать
url: "scripte.php",
//передача параметров
data: {'id' : "1", 'type' : "2"},
//тип параметров
dataType : "html",
//выполняем, если запрос прошел успешно
success: function(data){
//записуем результат ответа с php файла в нужный нам елемент
$('#text').html(data);
document.getElementById('text').style.display='block';
},
//виполняем, если возникла ошибка
failure: function() {
alert("Касяк отправки");
}
});
return false;
});
</script>

в html:

<div id='text'>Тут будет текст</div>

не забудь подключить какой ни будь jquery

например:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
Всего: 312