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

Форум PHP

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

 

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

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

тема: Редактирование данных
 
 автор: Roo$   (09.12.2006 в 18:06)   письмо автору
 
 

У меня есть файл следующей структуры:

name1::password2::mail1::url1
name2::password2::mail2::url2
name3::password3::mail3::url3
name4::password4::mail4::url4

Мне, допустим, нужно отредактировать только третью запись (name3::pass3::mail3::url3)
Как это сделать?
Я делаю так...

$f = fopen("text.txt", 'rb');
     if($f) while(!feof($f)) $arr[] = fgets($f);
    $i = 0;
    $temp = array();
    foreach($arr as $line)
    {
      // Разбиваем строку по разделителю ::
      $data = explode("::",$line);
      $temp['name'][$i]     = $data[0];
      $temp['password'][$i] = $data[1];
      $temp['mail'][$i]    = $data[2];
      $temp['url'][$i]    = $data[3];
      $i++;
    }
    $index1 = array_search($_SESSION['name'],$temp['name']);
    $name3 = $temp['name'][$index1];
    $pass3 = $temp['password'][$index1];
    $mail3 = $temp['mail'][$index1];
    $url3 = $temp['url'][$index1];

Затем полученные значения я подставляю в edit value. Потом я изменяю в edit эти значения. И как теперь мне это все сформировать (собрать) и записать? Подскажите пож. Лучше жилательно на примере (если можно).

   
 
 автор: ddhvvn   (09.12.2006 в 18:23)   письмо автору
 
   для: Roo$   (09.12.2006 в 18:06)
 

Вам нужно сформировать обратно строку функцией implode и записать уже эту строку либо обычным способом, либо через функцию file_put_contents()

<?php
  
//допустим у нас уже есть измененный массив двумерный $ar

  
for ($i 0$i count($ar), $i++)
  {
     
$source[] = implode("::"$ar[$i]);
  }

  
$str_to_f implode("\r\n"$source);

  
file_put_contents("file.txt"$str_to_f);
?>


Примерно так ...

   
 
 автор: Roo$   (09.12.2006 в 19:01)   письмо автору
 
   для: ddhvvn   (09.12.2006 в 18:23)
 

>//допустим у нас уже есть измененный массив двумерный $ar
А как его сформировать этот двумерный массив? У меня туговастенько дела обстаят с массивами. Подскажите.
Вот дальнейшие мои действия:
<form method=post>
<table>
<tr><td>Ник:</td><td><input type=text name=name value=<? echo $name3 ?>></td></tr>
<tr><td>Пароль:</td><td><input type=password name=pass value=<? echo $pass3 ?>></td></tr>
<tr><td>e-mail:</td><td><input type=text name=email value=<? echo $mail3 ?>></td></tr>
<tr><td>URL:</td><td><input type=text name=url value=<? echo $url3 ?>></td></tr>
<tr><td></td><td><input type=submit value='Изменить'></td></tr> 
</table>

Теперь что делать?

   
 
 автор: ddhvvn   (09.12.2006 в 19:29)   письмо автору
 
   для: Roo$   (09.12.2006 в 19:01)
 

>А как его сформировать этот двумерный массив? У меня туговастенько дела обстаят с массивами. Подскажите.

Так Вы же сами в самом первом хосте написали код для изменения некоторой строки???

   
 
 автор: Roo$   (09.12.2006 в 19:42)   письмо автору
 
   для: ddhvvn   (09.12.2006 в 19:29)
 

В перврм хосте я нашел эту строку (котор.хочу изменить)... и затем подставляю каждый эдемент ее в поле для редактирования.

<form method=post> 
<table> 
<tr><td>Ник:</td><td><input type=text name=name value=<? echo $name3 ?>></td></tr> 
<tr><td>Пароль:</td><td><input type=password name=pass value=<? echo $pass3 ?>></td></tr> 
<tr><td>e-mail:</td><td><input type=text name=email value=<? echo $mail3 ?>></td></tr> 
<tr><td>URL:</td><td><input type=text name=url value=<? echo $url3 ?>></td></tr> 
<tr><td></td><td><input type=submit value='Изменить'></td></tr>  
</table>

Теперь мне нужно собрать это все обратно в массив....

   
 
 автор: ddhvvn   (10.12.2006 в 17:09)   письмо автору
 
   для: Roo$   (09.12.2006 в 19:42)
 

Во-первых, извини за опечатку "посте", а не "хосте" :)

Во-вторых,
>Теперь мне нужно собрать это все обратно в массив....
так это у Вас и так будет в массиве $_POST.

Или я опять Вас не правильно понял?

   
 
 автор: Roo$   (12.12.2006 в 19:34)   письмо автору
 
   для: ddhvvn   (10.12.2006 в 17:09)
 

Что то опять я недогоняю как дальше делать?!.


$ary[0]= $_POST['name3'];
$ary[1]=$_POST['password3'];
$ary[2]=$_POST['mail3'];
$ary[3]= $_POST['url3'];
$ar = implode("::",$ary);


В $ar массиве лежат у меня уже отредактированыые данные. Мне теперь их надо както внести в файл вместо старых данных.

   
 
 автор: Roo$   (13.12.2006 в 00:43)   письмо автору
 
   для: Roo$   (12.12.2006 в 19:34)
 

Никто неподскажит мне...?

   
 
 автор: Roo$   (13.12.2006 в 13:57)   письмо автору
 
   для: Roo$   (13.12.2006 в 00:43)
 

Вопрос решен. Тема закрыта. Всем большое спасибо!!

   
Rambler's Top100
вверх

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