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

Форум PHP

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

 

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

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

тема: re ip
 
 автор: osvenzim   (25.04.2005 в 22:51)   письмо автору
 
 

У меня есть текстовый файл с данными (ip адреса), каждое с новой строки.Мне надо удалить одно значение. В смысле, я ввожу в textarea (он их искал в файле) - а потом их убивал.

   
 
 автор: Shorr Kan   (26.04.2005 в 06:36)   письмо автору
 
   для: osvenzim   (25.04.2005 в 22:51)
 

Ну разве что построчное сравнение содержимого файла с введенным....

   
 
 автор: Axxil   (26.04.2005 в 09:20)   письмо автору
 
   для: osvenzim   (25.04.2005 в 22:51)
 

Если я правильно понял:

<form method=post>
<textarea name="ip"></textarea>
<input type="submit" name="ок">
</form>
<?
if (isset($_POST['ok'])){
  
$file_array=file('ip.txt');
    
$pos=array_search($_POST['ip'],$file_array));
      if (
$pos)  unset($file_array($pos));
// Получаем массив с удалённым значением ip
// Который теперь нужно просто записать обратно в файл
}
?>

Только непонятно зачем textarea. По моему хватит поля ввода

   
 
 автор: osvenzim   (26.04.2005 в 11:03)   письмо автору
 
   для: osvenzim   (25.04.2005 в 22:51)
 

- Почему то, то что вы дали не работает, хотя должно. Вам встречный вопрос, разве имеет разницу код php, если работать с простым текстовым полем или textarea ??
- А можно вводить в textarea сразу много ip адресов чтобы он их убивал ??
- Заранее благодарен за ваши ответы, я буду рад если вы напишите примеры и к текстовому полю и к textarea (в чем разница) ???

   
 
 автор: Axxil   (26.04.2005 в 12:43)   письмо автору
 
   для: osvenzim   (26.04.2005 в 11:03)
 

Извиняюсь,до этогописал на коленке не проверяя. Вот проверенный, модифицированный код для одного Ip.
Соответственно php безразницы где вы вводите данные в текстареа или в текстовом поле. Посути текстовое поле это <textarea rows=1></textarea>
Поэтому если вы будете удалять один ip то нет смысла делать это через textarea
<form method=post>
<input type="hidden" name="step" value=2>
<textarea name="ip"></textarea>
<input type="submit" name="ok">
</form>
<?
//print_r($_POST);
if ($_POST['step']==2){
  
$file_array=file('ip.txt');
  echo 
"input array";print_r($file_array);
    
$pos=array_search($_POST['ip'],$file_array);
      if (
$pos)  unset($file_array[$pos]);
    echo 
"Output array";print_r($file_array);
}
?>

Если нужно удалить несколько ip:


<?
$str
=nl2br($_POST['ip']);
$ip_array=explode('<br />',$str);
// Получаем массив введённых ip-шников

if ($_POST['step']==2){
  
$file_array=file('ip.txt');
// в цикле проверяем все значения из ip массива
    
foreach ($ip_array as item){
      
$pos=array_search($item,$file_array);
        if (
$pos)  unset($file_array[$pos]);
    }
}
?>

   
 
 автор: cheops   (26.04.2005 в 13:31)   письмо автору
 
   для: osvenzim   (26.04.2005 в 11:03)
 

Axxil привёл лишь схему, при реализации таких вещей существует масса ньюансов, здесь бы ваш файл ip.txt нужен, хотя бы кусок - где его создавали под Windows или UNIX?
Вот как может выглядеть простейший рабочий вариант в предположении, что файл создан под Windows, пусть имеется HTML-форма index.php
<form action=handler.php method=post> 
<textarea name="ip"></textarea> 
<input type="submit" name="ok"> 
</form>

Тогда её обработчик handler.php будет выглядеть следующим образом
<? 
  $file_array 
file('ip.txt'); 
  
$pos array_search($_POST['ip']."\r\n",$file_array); 
  if(
$pos)  unset($file_array[$pos]); 
  
file_put_contents('ip.txt',implode("",$file_array));
?>

Если файл создавался в UNIX-подобной операционной системе, то все "\r\n" следует заменить на "\n".

   
Rambler's Top100
вверх

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