Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите найти ошибку в ПХП скрипте. 
:(
    Опции темы
gogle
Дата 23.8.2004, 19:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



Прогер написал за 5 минут до отъезда на юга скрипт в спешке и свалил.
Скрипт просто переименовывает банеры т.е. есть в дире файлы
1.jpg, 2jpg, 3.jpg, и.т.д
Вобщем он должен их переименовывать 1 во 2, 2 в 3, 3 в 1 , ну вобщем цикл.
А вместо этого он просто помоему удаляет файл с именем 1.jpg а файл 2.jpg переименовывает в 1.jpg ну и.т.д
Вот собственно сам скрипт.

<?
$bandir = "/home/site/public_html/ban/";

//==================

$d = dir($bandir);
$cname = "";
$tmp = "";
$tt = 1;
while (false !== ($ent = $d->read())) {
if ($ent != '.' && $ent != '..')
{
$fil = pathinfo($ent);
$fname = current(explode('.', $fil[basename]));
if ($fname == (int)$fname)
{
$nname = (int)$fname-1;
if ($nname!='0')
@rename($bandir.$ent,$bandir.$nname.".".$fil[extension]);
else
{
@rename($bandir.$ent,$bandir."tmp.".$fil[extension]);
$tmp = "tmp.".$fil[extension];
}
if ($tt < (int)$fname)
$cname = $ent;
}
}
}
$d->close();
if ($cname!='')
@rename($bandir.$tmp,$bandir.$cname);


?>
PM MAIL   Вверх
arial
Дата 23.8.2004, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



А зачем файлы с баннерами переименовывать циклически, если не секрет? Уж не вырезка ли это гланд через задний проход? Баннерокрутилка чтоли?


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
gogle
Дата 23.8.2004, 22:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



Да не секрет и тем более не вырезка "гланд через задний проход" smile.gif
Некоторые скрипты просто отсылают та 3 буквы банерокрутилки типа http://www.domain.com/ban.php , им подавай реальную картинку sad.gif
Поэтому я хочу через крон запустить этот скрипт , и пусть меняет мои нколичество баннеров по циклу через нное время.
PM MAIL   Вверх
gogle
Дата 23.8.2004, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



Блин ну ребята , скрипт то простой для програмиста , помогите пожалуйста , надо срочно !!!
PM MAIL   Вверх
IZ@TOP
Дата 23.8.2004, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Попробуй так:

Цитата
<?php

$path = 'banners/';

function newname($ext) {
    $words = "1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM_-";
    $newlen = 15;
    $n = '';
    for($i = 0; $i < $newlen; $i++) {
        $n .= $words[rand(0, strlen($words) -1)];
    }
    return $n.'.'.$ext;
}

$d = dir($path);
while($f = $d->read()) {
    if(filetype($path.$f) == 'file') {
        $bname = basename($path.$f);
        list(,$ext) = explode('.', $bname);
        rename($path.$f, $path.newname($ext));
    }
}
$d->close();
?>



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
arial
  Дата 24.8.2004, 06:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 772
Регистрация: 11.3.2003
Где: Архангельская обл .

Репутация: 6
Всего: 7



Цитата(gogle @ 23.8.2004, 23:21)
Да не секрет и тем более не вырезка "гланд через задний проход" smile.gif
Некоторые скрипты просто отсылают та 3 буквы банерокрутилки типа http://www.domain.com/ban.php , им подавай реальную картинку sad.gif
Поэтому я хочу через крон запустить этот скрипт , и пусть меняет мои нколичество баннеров по циклу через нное время.

Переименовывание файлов в баннерокрутилке - это вырезка гланд через задницу. Сделай правило в mod_rewrite, и у тебя всегда под именем some_image.gif будет прятаться скрипт, отдающий картинки по циклу. Тут тебе и реальная картинка будет.


--------------------
Есть люди, в которых живет Бог. Есть люди, в которых живет дьявол. А есть люди, в которых живут только глисты. (Ф. Раневская)
PM ICQ   Вверх
gogle
Дата 24.8.2004, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



Сделал так , 5 банеров , 3 просто удаляет а остальные 2 удачно переименовывает потом , еслиб без удаления , то былоб просто чудненько smile.gif

<?php

$path = '/home/site/public_html/ban1/';

function newname($ext) {
$words = "12345";
$newlen = 1;
$n = '';
for($i = 0; $i < $newlen; $i++) {
$n .= $words[rand(0, strlen($words) -1)];
}
return $n.'.'.$ext;
}

$d = dir($path);
while($f = $d->read()) {
if(filetype($path.$f) == 'file') {
$bname = basename($path.$f);
list(,$ext) = explode('.', $bname);
rename($path.$f, $path.newname($ext));
}
}
$d->close();
?>
PM MAIL   Вверх
gogle
Дата 24.8.2004, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



2 arial :
имхо, чтоб добавить правило в mod_rewrite , наверное надо права иметь ?
А уменя их нет , ломать же сервер чтоб это все сделать , и есть вырезка гланд через задний проход , а если учесть , то что я ломать сервера неумею , то это вырезка гланд через задний проход тупым скальпелем в темной комнате smile.gif
Проще мне кажется заюзать такой скрипт , беда льши в том что он неюзабелен пока sad.gif

Это сообщение отредактировал(а) gogle - 24.8.2004, 11:57
PM MAIL   Вверх
Ignat
Дата 24.8.2004, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Этот срипт дает один и тот же результат или каждый раз новый?


--------------------
Теперь при чем :P
PM   Вверх
gogle
Дата 24.8.2004, 12:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



Каждый раз новый
PM MAIL   Вверх
Ignat
Дата 24.8.2004, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Угу, у тебя рандомизится имя.
Вот поправленный:
Код
<?php
$bandir = "/home/site/public_html/ban1/";

//==================

$d = dir($bandir);
$cname = "";
$tmp = "";
$tt = 1;
while (false !== ($ent = $d->read())) {
if ($ent != '.' && $ent != '..')
{
$fil = pathinfo($ent);
print_r($fil);
$fname = current(explode('.', $fil['basename']));
if ($fname == (int)$fname)
{
$nname = (int)$fname-1;
if ($nname!='0')
rename($bandir.$ent,$bandir.$nname.".".$fil['extension']);
else
{
rename($bandir.$ent,$bandir."tmp-".$fil['extension']);
$tmp = "tmp-".$fil['extension'];
}
if ($tt < (int)$fname)
$cname = $ent;
}
}
}
$d->close();
if ($cname!='')
rename($bandir.$tmp,$bandir.$cname);
?>



--------------------
Теперь при чем :P
PM   Вверх
gogle
Дата 24.8.2004, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



Игнат спасибо , это самый лучший вариант , и он делает все правильно , но при каждой сработке файл 1.jpg удалется вместо того чтобы переименовываться в конец очереди.
Подправь еще чуток пожалуйста smile.gif
PM MAIL   Вверх
Ignat
Дата 24.8.2004, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



у меня не удаляется - проверял sad.gif
какие права на папку ban1?
Добавлено @ 14:17
ошибки какие-нибудь пишет?


--------------------
Теперь при чем :P
PM   Вверх
gogle
Дата 24.8.2004, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 2.6.2004

Репутация: нет
Всего: нет



права 777
файлы 644
у меня он удаляет файл 1.jpg далее переименовывает все остальные как и надо , но первый файл непоявляется в коце очереди под другим именем.
вот это выдает после сработки
Array ( [dirname] => . [basename] => 1.jpg [extension] => jpg ) Array ( [dirname] => . [basename] => 4.jpg [extension] => jpg ) Array ( [dirname] => . [basename] => 2.jpg [extension] => jpg ) Array ( [dirname] => . [basename] => 3.jpg [extension] => jpg )
PM MAIL   Вверх
Ignat
Дата 24.8.2004, 14:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 10
Всего: 73



Непонятно...
Почему 4 идет сразу за 1...
Сделай файлам пакетное переименование со счетчиком...



--------------------
Теперь при чем :P
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1611 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.