|
|
|
| У меня есть текстовый файл с данными (ip адреса), каждое с новой строки.Мне надо удалить одно значение. В смысле, я ввожу в textarea (он их искал в файле) - а потом их убивал. | |
|
|
|
|
|
|
|
для: osvenzim
(25.04.2005 в 22:51)
| | Ну разве что построчное сравнение содержимого файла с введенным.... | |
|
|
|
|
|
|
|
для: 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
(25.04.2005 в 22:51)
| | - Почему то, то что вы дали не работает, хотя должно. Вам встречный вопрос, разве имеет разницу код php, если работать с простым текстовым полем или textarea ??
- А можно вводить в textarea сразу много ip адресов чтобы он их убивал ??
- Заранее благодарен за ваши ответы, я буду рад если вы напишите примеры и к текстовому полю и к textarea (в чем разница) ??? | |
|
|
|
|
|
|
|
для: 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]);
}
}
?>
|
| |
|
|
|
|
|
|
|
для: 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". | |
|
|
|