Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: стереть через скрипт файлы
 
 автор: cccp   (03.11.2005 в 04:22)   письмо автору
 
 

Привет ребята!

какой вункцией можно стиреть через скрипт файлы что находятся в определённой папке на сервере?

Получается что их надо сначало высветить на этой страничке, а потом уже стирать.

   
 
 автор: Sfinks   (03.11.2005 в 06:53)   письмо автору
 
   для: cccp   (03.11.2005 в 04:22)
 

Функция unlink("имя_файла"); стирает файлы, если ничто, типа чмода, этому не мешает.

   
 
 автор: ZetRider   (03.11.2005 в 11:01)   письмо автору
 
   для: Sfinks   (03.11.2005 в 06:53)
 

запросто:
ето в файле index.php
<script language='JavaScript1.1' type='text/javascript'>
<!--
function del()
{
if(confirm("Вы хотите удалить содержимое файла ?"))
{
return true;
}
else
{
return false;
}
}
//-->
</script>
<a href=del.php onClick='return del()'>Почистить</a><br>


ето в файле del.php
<?php
// Имя файла
$filename = "1.txt";
// Открываем файл
$fd = fopen($filename, "w");
// Обнуляем файл
fwrite($fd, "");
// Закрываем файл
fclose($fd);
?>
<META HTTP-EQUIV=Refresh CONTENT="1; URL=index.php">

   
 
 автор: cccp   (03.11.2005 в 15:00)   письмо автору
 
   для: ZetRider   (03.11.2005 в 11:01)
 

А почему указан файл ?

$filename = "1.txt"; 


Я ведь хочу сначала видеть что в папке и выбрать что удалять

   
 
 автор: ZetRider   (03.11.2005 в 17:22)   письмо автору
 
   для: cccp   (03.11.2005 в 15:00)
 

Ну ты файл можеш указать какой тебе надо... а выбрать ето уже сложнее, хотя... надо подумать!

   
 
 автор: cccp   (03.11.2005 в 19:47)   письмо автору
 
   для: ZetRider   (03.11.2005 в 17:22)
 

please

   
 
 автор: mistersmak   (03.11.2005 в 20:21)   письмо автору
 
   для: cccp   (03.11.2005 в 19:47)
 

Ничего сложного нет:

filelist.php
<?
 $directory 
="your_folder/";
 
$readfolder opendir($directory);
 while(
$file readdir($readfolder)) 
  {
   if(
$file != ".." && $file != "."$files[] = $file
  }
  
closedir($readfolder);
  for(
$n=0;$n<count($files);$n++)
  {
   echo 
"Очистить содержимое файла <a href=delete.php?filename=$directory"."$files[$n]>$files[$n]</a><br>";
  }
?>
delete.php
<?
 
@$cleaning fopen($filename,"w");
 @
$clean fwrite($cleaning,"");
 @
fclose($cleaning);
 if(!
clean) { echo "Ошибка при очистке файла!"; }
 else { echo 
"Файл успешно очищен!"; }
?>

   
 
 автор: cccp   (04.11.2005 в 19:18)   письмо автору
 
   для: mistersmak   (03.11.2005 в 20:21)
 

Спасибо за пример.
Я попробовал и ничего не стёрлось.
Правда я вставил сцрипт filelist.php не отдельно, а в свою страничку.
Это думаю не могло помешать стиреть файл?!

Может мой сервер не разрешает стирать файлы?
Как это узнать?

Или есть ещё какой-то метод но в виде другого скрипта, что бы проверить, а?

   
 
 автор: cccp   (04.11.2005 в 19:21)   письмо автору
 
   для: cccp   (04.11.2005 в 19:18)
 

Прошу прощения...
Я посмотрел хорошо.
Файлы не стёрты, но стёрт ихний вес.
Тоесть : у меня в папке бйли фотки (на пример foto.jpg ), я вижу что папке файл существует , но размер 0.

   
 
 автор: JIEXA   (04.11.2005 в 20:27)   письмо автору
 
   для: cccp   (04.11.2005 в 19:21)
 

Вот так попробуйте...
<?
$directory 
="your_folder/";
$readfolder opendir($directory);
while(
$file readdir($readfolder))
  {
   if(
$file != ".." && $file != "."$files[] = $file;
  }
  
closedir($readfolder);
  for(
$n=0;$n<count($files);$n++)
  {
   echo 
"Удалить файл <a href=delete.php?filename=$directory"."$files[$n]>$files[$n]</a><br>";
  }
?>
delete.php
<?
if(unlink($filename))
{
  print 
"файл успешно снесён...";
}
else
{
  print 
"Возникли проблемы при удалении...";
}
?>

   
 
 автор: cccp   (04.11.2005 в 21:07)   письмо автору
 
   для: JIEXA   (04.11.2005 в 20:27)
 

Классно, так работает!

А ещё одна штучка возможна?
В этой папке фото файлы.
Можно ли что бы сцрипт показывал не просто линки а в виде самих фоток, а?

   
 
 автор: mistersmak   (04.11.2005 в 22:28)   письмо автору
 
   для: cccp   (04.11.2005 в 21:07)
 

Я думал вам надо стереть содержимое, а не удалить файл. Удалят, конечно unlink()

   
 
 автор: DDK   (04.11.2005 в 22:41)   письмо автору
 
   для: mistersmak   (04.11.2005 в 22:28)
 

Постарайтесь чётче формулировать проблему: слово "стереть" и слово "удалить" в данном контексте несут совсем разные значения. И не надо стирать этот пост, ув. Cheops, я хочу, что бы до автора этой темы хоть что-то дошло из моих слов...

[поправлено модератором]

   
 
 автор: cccp   (04.11.2005 в 22:43)   письмо автору
 
   для: mistersmak   (04.11.2005 в 22:28)
 

Ничего страшного, я разобрался.
Спасибо всё равно.

Хотел бы узнать можно ли указать скрипту указывать лиш фото файлы, или это трудно?

   
 
 автор: DDK   (04.11.2005 в 22:35)   письмо автору
 
   для: cccp   (04.11.2005 в 21:07)
 

замените строку

echo "Удалить файл <a href=delete.php?filename=$directory"."$files[$n]>$files[$n]</a><br>"; 

на строку

echo "Удалить файл <a href='delete.php?filename=".$directory.$files[$n]."'><img src='".$directory.$files[$n]."'></a><br>";


[поправлено модератором]

   
 
 автор: mistersmak   (04.11.2005 в 22:40)   письмо автору
 
   для: cccp   (04.11.2005 в 21:07)
 

Да, и еще изображения лучше ставить в таблицу, и лучше им быть схожих размеров, а то получится фигня.

   
 
 автор: cccp   (04.11.2005 в 23:09)   письмо автору
 
   для: mistersmak   (04.11.2005 в 22:40)
 

Товарищи...
Я стараюсь и ко многому пришол сам или с вашей помошью.
Я самоучка, как и многие. Поетому многие вещи не понимаю не посмотрев на них.
Сделать линки в виде самих фоток, я сделал сам, методом самотыка.

Я не вампир, а просто иногда в поисках визуальной подмоги.
Так же и сам, чем могу, готов делиться.

   
 
 автор: cccp   (06.11.2005 в 02:54)   письмо автору
 
   для: cccp   (04.11.2005 в 23:09)
 

Привет ещё раз!
Я тут пытался сам, методом "самотыка", вставить в скрипт несколько линий что бы
скрипт не высвечивал файл под названием "index.php3", и что бы показывал лиш фото файлы.
Но...Методом самотыка далеко не уйдёш.
Поэтому прошу вашей помощи.


<? 
$directory 
="../gallery/"
$readfolder opendir($directory);
while(
$file readdir($readfolder)) 
// Extension
$extapp "gif","jpg","bmp"
  { 
   if((
$file != "..") && ($fichier!="index.php3") && ($file != ".")) $files[] = $file

$array_fichiers[] = "$file"
$sec_fichier explode("."$file); 
$array_apercus[] = "$files[0].$extapp"


  
closedir($readfolder); 
  for(
$n=0;$n<count($files);$n++) 
  { 
   echo 
"<table border='0'>
  <tr> 
    <td width='75'><img src='
$directory$files$array_apercus[$n]'></td><td width='75'><img src='../images/effacer1.gif'></td><td width='75'><a href=delete.php?filename=$directory"."$files[$n]>$files[$n]</a></td></tr>
</table><br><hr align='center' color='#525252' size='2' width='50%'>"

  } 
?>

   
 
 автор: DDK   (06.11.2005 в 11:51)   письмо автору
 
   для: cccp   (06.11.2005 в 02:54)
 

Всё правильно, только не понятно одно - почему "($fichier != "index.php3")", а именно почему переменная называется не file, а fichier ? Замените fichier на file и всё будет тип-топ.

   
 
 автор: cccp   (06.11.2005 в 14:28)   письмо автору
 
   для: DDK   (06.11.2005 в 11:51)
 

Я поменял ($fichier != "index.php3") на ($file != "index.php3").
Честно говоря я думал что эта строка позволит мне избежать высвечивания самого файла index.php3

   if(($file != "..") && ($file!="index.php3") && ($file != ".")) $files[] = $file; 

Что то всё равно не получаестся...

У меня за место файла фотки высвечивает это:


<img src='../gallery/Array.gif'>


Хочу сказать что на страничьке есть сцрипт с такой строкой:


$extensions_ok = array("jpg","jpeg","gif","bmp","png"); 

Может это из-за этого неполадка?

   
 
 автор: DDK   (06.11.2005 в 15:59)   письмо автору
 
   для: cccp   (06.11.2005 в 14:28)
 

А давайте вы нам раскажете, что этот скрипт вообще делает ? Т.е. что делает-то понятно, но меня смущают заморочки с extensions...

   
 
 автор: cccp   (06.11.2005 в 18:54)   письмо автору
 
   для: DDK   (06.11.2005 в 15:59)
 

Эта строчка...

$extensions_ok = array("jpg","jpeg","gif","bmp","png"); 

... со скрипта, что на одной и той-же страничке, который делает Upload картинок.

   
 
 автор: cccp   (06.11.2005 в 22:51)   письмо автору
 
   для: cccp   (06.11.2005 в 18:54)
 

Даже убрав со страничьки скрипт с этой строкой:

$extensions_ok = array("jpg","jpeg","gif","bmp","png"); 

, происходит та-же самая ошибка.
Сцрипт мне показывает не настояшие фотки што в указанной папке, а "Array" за место настоящих названий файлов от фоток. В виде: Array.gif

   
 
 автор: cheops   (06.11.2005 в 23:39)   письмо автору
 
   для: cccp   (06.11.2005 в 22:51)
 

Значит где-то имеется попытка вывода массива, а не значения...

   
 
 автор: cccp   (07.11.2005 в 00:19)   письмо автору
 
   для: cheops   (06.11.2005 в 23:39)
 

Спасибо за подсказку.
Только я даже не знаю как массив выгледит...
Тоесть, так как я самоучька, то не знаю названия всех значений.
Вы видите этот массив в моём, выше показанно скрипте?

   
 
 автор: Drago   (07.11.2005 в 00:33)   письмо автору
 
   для: cccp   (07.11.2005 в 00:19)
 

Возможно вот здесь

<img src='$directory$files$array_apercus[$n]'>

Так как $files являеться массивом

 $files[] = $file;

   
 
 автор: cccp   (07.11.2005 в 00:41)   письмо автору
 
   для: Drago   (07.11.2005 в 00:33)
 

Ну а что теперь значение?
Как оно выгледит?
Надо заменить строку массива на значение?

   
 
 автор: cccp   (07.11.2005 в 01:19)   письмо автору
 
   для: cccp   (07.11.2005 в 00:41)
 

Может быть проще использовать $exclu что бы запретить высвечивание определёного файла, нет?

   
 
 автор: Drago   (07.11.2005 в 01:21)   письмо автору
 
   для: cccp   (07.11.2005 в 00:41)
 

Измените

<img src='$directory$files$array_apercus[$n]'>

на

<img src='$directory$files[$n]'>

И не понятно, что означает?

$extapp = "gif","jpg","bmp";

Если это массив, то нужно было

$extapp = array ("gif","jpg","bmp");

   
 
 автор: DDK   (07.11.2005 в 01:21)   письмо автору
 
   для: cccp   (07.11.2005 в 00:41)
 

Вообще, должно быть вот так:

<img src='".$directory.$files[$n]."'>


Но я не могу понять, какую роль тут играет массив $array_apercus...

   
 
 автор: cccp   (07.11.2005 в 02:54)   письмо автору
 
   для: DDK   (07.11.2005 в 01:21)
 

Спасибо всем за дружную помощь!
Я исправил эту строку $extapp = "gif","jpg","bmp"; на правельную:
$extapp = array "gif","jpg","bmp");

Tак же следовал вашим советам Но всё таки ничего не вышло...
Результат таков:

<img src='../gallery/>


А когда я попробовал так:


<img src='".$directory.$files.$array_apercus[$n]."'>


То в ответ получил такой ответ:

<img src='../gallery/Array.Array'>

Ничего не пойму...Голова кругом.

   
 
 автор: Drago   (07.11.2005 в 03:25)   письмо автору
 
   для: cccp   (07.11.2005 в 02:54)
 

Вы может объяснить, для чего нужен массив $array_apercus!?
А пишет Array, так как вы пишете $files вместо $files[$n]

   
 
 автор: cccp   (07.11.2005 в 10:21)   письмо автору
 
   для: Drago   (07.11.2005 в 03:25)
 

$array_apercus
Да я и сам толком не знаю, так-как взял строку из одного скрипта.
Но я думал что это для того что бы скрипт показывал только фото файлы.

   
 
 автор: Drago   (07.11.2005 в 14:20)   письмо автору
 
   для: cccp   (07.11.2005 в 10:21)
 

Сделайте вот так

<? 
$directory 
="../gallery"
$readfolder opendir($directory); 
$extapp = array ("gif","jpg","bmp");
while(
$file readdir($readfolder)) 

  if((
$file != "..") && ($file!="index.php3") && ($file != ".")) 
    
$files[] = $file

closedir($readfolder); 
foreach (
$files as $file_name

  
$name_ext explode ("."$file_name);
  foreach (
$extapp as $ext)
  {
    if (
$name_ext[1] == $ext
    {
        echo 
"<table border='0'><tr><td width='75'>
       <img src='
$directory/$file_name'>
        </td><td width='75'>
        <img src='../images/effacer1.gif'>
        </td><td width='75'>
       <a href=delete.php?filename=
$directory/$file_name>$file_name</a>
        </td></tr></table><br><hr align='center' color='#525252' size='2' width='50%'>"

    }
  } 
}
?>

   
 
 автор: cccp   (08.11.2005 в 00:23)   письмо автору
 
   для: Drago   (07.11.2005 в 14:20)
 

Точно !!!
Так работает.
Огромное спасибо Drago!
Пока небыло времени подробно размотреть и понять где была моя ошибка.
Но в эти выходные я разберусь.

Ещё раз СПАСИБО за помощь.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования