Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

А как удалить элемент масива или заменить на другой в РНР?

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> А как удалить элемент масива или заменить на другой в РНР?
Имя
Сообщение << Старые топики   Новые топики >>
А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 14:18:54.833333   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
допустим есть датафайл с такими данными
 
user1|pass1|key1|
user2|pass2|key2|
user3|pass3|key3|

userN|passN|keyN|
 
При помощи цыкла мы узнаём какой элемент или строка масива нам нужны, а дальше как:
1. Вопрос: как удалить всю строку user2|pass2|key2| и при этом записать в файл
user1|pass1|key1|
user3|pass3|key3|
user4|pass4|key4|

userN|passN|keyN|
2. Вопрос: как удалить только pass2 и записать в файл
user1|pass1|key1|
user2||key2|
user3|pass3|key3|

userN|passN|keyN|
3. Вопрос: как заменить pass2 на passAlfa и естественно записать в файл следующее:
user1|pass1|key1|
user2|passAlfa|key2|
user3|pass3|key3|

userN|passN|keyN|
Post #: 1
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 15:22:18.260000   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
1. 5 WMZ
2. 4 WMZ
3. 4 WMZ

З.Ы. Деньги не такие уж и большие :)
Post #: 2
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 16:11:35.226666   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
1. 4 WMZ
2. 3 WMZ
3. 3 WMZ
 
:D:D:D
Post #: 3
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 16:48:15.290000   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
   для Адреналинэ
и
   для дх
 
:D:D:D
Хорошо, что в гугл не послали
Post #: 4
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 19:15:01.896666   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
В гугле ответа на такой простой вопрос не будет.:)
И написал бы хоть, что именно тебе нужно. Дан массив с элементами вида userN|passN|keyN| ? Или в каком виде массив? И нужно в нём что-то поудалять и записать в файл?
Post #: 5
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 19:28:07.830000   
NightmareZz

Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
5 WMZ за три ответа
Post #: 6
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 20:10:56.813333   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
quote:

ORIGINAL: dx

В гугле ответа на такой простой вопрос не будет.:)
И написал бы хоть, что именно тебе нужно. Дан массив с элементами вида userN|passN|keyN| ? Или в каком виде массив?&nbsp;И нужно в нём что-то поудалять и записать в файл?

Ты ваще в курсе что такое масив?
я поставил символ "|", так как это самый разпространённый вариант записи масива в файл, а сам масив будет выглядеть так:
user1 pass1 key1
user2 pass2 key2
user3 pass3 key3

userN passN keyN
 
Я ващето приблизительно догадываюсь как это должно быть:
ищим к примеру элемент, который бы отвечал значению 888
$p=888;
$lines=file(data.dat);
  $i=count($lines);
  $a=0;
         While ($a<$i)
     {$usd=explode("|", $lines[$a]);
          If ($p==$usd[2])
          {
//замена строки, где было обнаружено совпадение на пустую ""
$usd=str_replase("usd[0]|usd[1]|usd[2]", "", $usd)
// а теперь как это строку записать в файл на место предидущей?? Напрмер во второй ряд.
}
$a++;}
Post #: 7
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 20:11:21.156666   
Jasmin

Сообщений: 2320
Оценки: 0
Присоединился: 2007-05-03 23:08:53.390000
4 WMZ. И погремушку в нагрузку
Post #: 8
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 20:25:50.730000   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
quote:

ORIGINAL: Jasmin

4 WMZ. И погремушку в нагрузку

а за сиську даш потрогать вместо погремушки, темболее, что там чувак за 3 WMZ предлагал ответ???
Post #: 9
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 20:58:51.246666   
NightmareZz

Сообщений: 1087
Оценки: 0
Присоединился: 2006-10-15 11:16:16.833333
quote:

ORIGINAL: Bios_inside
quote:

ORIGINAL: Jasmin
4 WMZ. И погремушку в нагрузку

а за сиську даш потрогать вместо погремушки, темболее, что там чувак за 3 WMZ предлагал ответ???

Тебе некого за сиську потрогать? Бедьняжка :D:D:D;)
Post #: 10
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 21:04:27.230000   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
quote:

Ты ваще в курсе что такое масив?

Нет, а что это такое?:D Я написал свою cms и движок форума, и в 25000 строках кода ни разу не использовал такое:D:D:D
Post #: 11
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 21:28:51.706666   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: Bios_inside

// а теперь как это строку записать в файл на место предидущей?? Напрмер во второй ряд.

надо записать все. в смысле все те которые надо. можно перед этим сказать trunc, или как там обнуление размера файла в php делается?
Post #: 12
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 21:31:16.250000   
dx

Сообщений: 337
Оценки: 0
Присоединился: 2006-12-15 13:35:49.700000
quote:

или как там обнуление размера файла в php делается?

ftruncate(resource handle,int size);
 
или можно так:
fopen(string filename,'w+');
Post #: 13
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 22:36:01.396666   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
Гы, нездоровая конкуренция нах… Вот до чего дошло - ушли в тему сисек… Ладно, чтобы воду тут не разводить, вот решение всех трёх задач:

1)
&lt;?php if(isset($_GET['str'])) { $str = $_GET['str']; if ($str != "") { $str--; $file=file("text.txt"); for($i=0;$i&lt;sizeof($file);$i++) { if($i==$str) unset($file[$i]); } $fp=fopen("text.txt","w"); fputs($fp,implode("",$file)); fclose($fp); } } ?&gt;
При запросе типа имя_файла.php?str=n удаляется строка n в файле text.txt, (строки нумерются начиная с 1).

2)
&lt;?php if(isset($_GET['str'])) { $str = $_GET['str']; $fp = fopen("text.txt", "r"); $buf = fread($fp, filesize("text.txt")); fclose($fp); $buf = ereg_replace($str,'',$buf); $fp = fopen("text.txt", "w"); fwrite($fp, $buf); fclose($fp); } ?&gt;
В скрипт передаётся переменная $str - текст который нужно удалить.

3)
&lt;?php if(isset($_GET['from'])&&isset($_GET['to'])) { $str = $_GET['from']; $str2 = $_GET['to']; $fp = fopen("text.txt", "r"); $buf = fread($fp, filesize("text.txt")); fclose($fp); $buf = ereg_replace($str,$str2,$buf); $fp = fopen("text.txt", "w"); fwrite($fp, $buf); fclose($fp); } ?&gt; По аналогии предыдущего, параметр from - какой текст заменить, to - чем.

Во-о-о-т, собственно :)
Post #: 14
RE: А как удалить элемент масива или заменить на другой в РНР? - 2007-06-17 23:34:01.280000   
Bios_inside

Сообщений: 626
Оценки: 0
Присоединился: 2007-02-23 10:44:18.170000
спасибо[sm=ay.gif][sm=ay.gif][sm=ay.gif]
Post #: 15
Страниц:  [1]
Все форумы >> [Веб-программинг] >> А как удалить элемент масива или заменить на другой в РНР?







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.