<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум компьютерной помощи &mdash; Удаление файлов аватаров без юзеров на PUNBB.]]></title>
	<link rel="self" href="https://itpmr.ru/extern.php?action=feed&amp;tid=972&amp;type=atom" />
	<updated>2016-03-22T12:17:11Z</updated>
	<generator>PunBB</generator>
	<id>http://itpmr.ru/viewtopic.php?id=972</id>
		<entry>
			<title type="html"><![CDATA[Re: Удаление файлов аватаров без юзеров на PUNBB.]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124512#p124512" />
			<content type="html"><![CDATA[<p>Вот скрипт для удаления одинаковых аватаров - совпадение номера аватара, но разные расширения.<br />Пример, у юзера с id = 1747&nbsp; есть два файла 1747.gif&nbsp; и 1747.jpg</p><div class="codebox"><pre><code>&lt;?php  // ДЛЯ АНГЛ ФОРУМА!
echo &quot;&lt;br&gt;подкл к БД...&quot;;
  //  ЕСЛИ НЕТ НИКОВ
$file_ini = file(&quot;boris.ini&quot;);
$host=&quot;localhost&quot;;
$user=trim($file_ini[0]);
$pwd=trim($file_ini[1]);
$database_name=trim($file_ini[2]);
$db=mysql_connect($host,$user,$pwd);
echo &quot;&lt;br&gt;   {$database_name} - {$user} - {$pwd} &lt;br&gt;&quot;;
mysql_select_db($database_name,$db); 
mysql_query(&quot;SET character_set_client=&#039;utf8&#039;&quot;);
mysql_query(&quot;SET character_set_connection=&#039;cp1251&#039;&quot;);
mysql_query(&quot;SET character_set_results=&#039;cp1251&#039;&quot;);

echo &quot;читаем имена файлов аватаров&quot;;
$dir    = &#039;../img/avatars&#039;;
$files1 = scandir($dir);

chdir ($dir);

echo &quot; &lt;br&gt; &quot; . getcwd() . &quot; &lt;br&gt; &quot;;     // Получить имя текущего рабочего каталога

$query = mysql_query(&quot;select * from users&quot;)  or die(&quot;Invalid query&quot; . mysql_error());     // ищем ник в БД по имени файла аватара
while ($row = mysql_fetch_assoc($query)) {
$userid = $row[&#039;id&#039;];
$nik = $row[&#039;username&#039;];   // логин
$avatar = $row[&#039;avatar&#039;];
if ($avatar ==&quot;2&quot;) {
$avatar =  &quot;jpg&quot;;
}
if ($avatar ==&quot;1&quot;) {
$avatar =  &quot;gif&quot;;
}

echo &quot;&lt;br&gt;&quot; . $userid . &quot; &quot;. $nik  . &quot; аватар: &quot;. $avatar ;
foreach($files1 as $filename)  
{ 
  if ($filename != &#039;.&#039; &amp;&amp; $filename != &#039;..&#039;) 
  {

$myfile = substr($filename,0,strlen($filename)-4); ;       //имя файла аватара без расширения  (цифры)
$Extension =    substr($filename, strrpos($filename, &#039;.&#039;) + 1);
if  ($userid == $myfile)    
{     

if (($avatar ==&quot;jpg&quot;) and ($Extension ==&quot;gif&quot;))  {
echo &quot; Стереть &quot; .   $filename;
}
if (($avatar ==&quot;gif&quot;) and ($Extension ==&quot;jpg&quot;))  {
echo &quot; Стереть &quot; .   $filename;
unlink ($filename);         //6616
}
print_r(error_get_last());
echo &quot; &lt;br&gt; &quot;;
}
    }
}
}

mysql_close($db);        
echo &quot;&lt;br&gt;закрыли БД&quot;;
                ?&gt;</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2016-03-22T12:17:11Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124512#p124512</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Удаление файлов аватаров без юзеров на PUNBB.]]></title>
			<link rel="alternate" href="http://itpmr.ru/viewtopic.php?pid=124511#p124511" />
			<content type="html"><![CDATA[<p>В папочке &quot;/img/avatars &quot; форума на движке PUNBB&nbsp; есть очень много аватаров.<br />Некоторые аватары без юзеров в базе, а значит не используются и лишние.<br />Удаляем такие.</p><div class="codebox"><pre><code>&lt;?php  // ДЛЯ АНГЛ ФОРУМА!
echo &quot;&lt;br&gt;подкл к БД...&quot;;
  //  ЕСЛИ НЕТ НИКОВ
$file_ini = file(&quot;boris.ini&quot;);
$host=&quot;localhost&quot;;
$user=trim($file_ini[0]);
$pwd=trim($file_ini[1]);
$database_name=trim($file_ini[2]);
$db=mysql_connect($host,$user,$pwd);
echo &quot;&lt;br&gt;   {$database_name} - {$user} - {$pwd} &lt;br&gt;&quot;;
mysql_select_db($database_name,$db); 
mysql_query(&quot;SET character_set_client=&#039;utf8&#039;&quot;);
mysql_query(&quot;SET character_set_connection=&#039;cp1251&#039;&quot;);
mysql_query(&quot;SET character_set_results=&#039;cp1251&#039;&quot;);

echo &quot;читаем имена файлов аватаров&quot;;
$dir    = &#039;../img/avatars&#039;;
$files1 = scandir($dir);
chdir ($dir);
echo &quot; &lt;br&gt; &quot; . getcwd() . &quot; &lt;br&gt; &quot;;
foreach($files1 as $filename)  { 
if ($filename != &#039;.&#039; &amp;&amp; $filename != &#039;..&#039;) {
 
 // по имени файла аватара ищем в базе ник, если ника нет - то стереть ненужный аватар. 
  $myfile = substr($filename,0,strlen($filename)-4); ;       //имя файла аватара без расширения  (цифры)
 //echo  &quot; $myfile - $filename&quot;;
$query = mysql_query(&quot;select * from users WHERE id = &#039;$myfile&#039; &quot;)  or die(&quot;Invalid query&quot; . mysql_error());     // ищем ник в БД по имени файла аватара
while ($row = mysql_fetch_assoc($query)) {
$nik = $row[&#039;username&#039;];   // логин
$num_posts = $row[&#039;num_posts&#039;];    // кол-во постов 
 echo $myfile . &quot;//&quot; . $nik  . &quot;* постов: &quot;. $num_posts ; 
if  (empty ($nik)) {   //  если с учетом кол-ва постов, то (($num_posts == &quot;5&quot;) or empty ($nik))
echo &quot; УДАЛЯЕМ &quot; . $filename ;
 unlink ($filename);
print_r(error_get_last()); 
    }
echo &quot; &lt;br&gt; &quot;;
}
  }
 }
mysql_close($db);        
echo &quot;&lt;br&gt;закрыли БД&quot;;
                ?&gt;</code></pre></div><p>Есть еще проблема - у некоторых ников (юзеров) по два соответсвующих файла аватаров, но с&nbsp; разными расширениями.<br />Как понять - какой аватар у ника?</p><p>Вот соответствие с таблицы users поля avatar:<br /></p><div class="codebox"><pre><code>define(&#039;FORUM_AVATAR_NONE&#039;, 0);
define(&#039;FORUM_AVATAR_GIF&#039;, 1);
define(&#039;FORUM_AVATAR_JPG&#039;, 2);
define(&#039;FORUM_AVATAR_PNG&#039;, 3);</code></pre></div>]]></content>
			<author>
				<name><![CDATA[admin]]></name>
				<uri>http://itpmr.ru/profile.php?id=2</uri>
			</author>
			<updated>2016-03-18T12:41:42Z</updated>
			<id>http://itpmr.ru/viewtopic.php?pid=124511#p124511</id>
		</entry>
</feed>
