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

Форум Регулярные Выражения

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

 

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

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

тема: Редактирование строки
 
 автор: ZetRider   (25.03.2006 в 15:31)   письмо автору
 
 

Есть файл config.php в нем находится примерно такая картина:

<?
$name
="ZetRider";
$icq="662495";
?>

Как можна редактировать то что находится между $name=" и "; тоесть само значение переменной?

   
 
 автор: kasmanaft   (25.03.2006 в 21:01)   письмо автору
 
   для: ZetRider   (25.03.2006 в 15:31)
 

в смысле редактировать?
что ты хочешь получить?

   
 
 автор: cheops   (25.03.2006 в 22:13)   письмо автору
 
   для: ZetRider   (25.03.2006 в 15:31)
 

Действительно, нужно больше подробностей - содержимое файла содержится в переменной? Значение переменной известно заранее?

   
 
 автор: ZetRider   (25.03.2006 в 22:41)   письмо автору
 
   для: cheops   (25.03.2006 в 22:13)
 

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

<? include"config.php"?>
<center>
<table  width="51%" border=0>
<tr class="zag"><td width="80%" colspan="2"><b><font face='verdana' size='1'><center>Настройки:</center></font></b></td></tr>
<form action="edit_conf.php" method="POST">
<tr class="text"><td width="41%"><font face='verdana' size='1'>Имя</font></td><td><input type="text" name="teamname" value="<?=$name?>" size="30"></td></tr>
<tr class="text"><td width="41%"><font face='verdana' size='1'>Ася</font></td><td><input type="text" name="sitename" value="<?=$icq?>" size="30"></td></tr>
<tr><td colspan="2" align="center"><input type="submit" value="Сохранить"></td></tr>
</table>
</center>

   
 
 автор: ZetRider   (25.03.2006 в 22:45)   письмо автору
 
   для: ZetRider   (25.03.2006 в 22:41)
 

к примеру в строке $name="ZetRider"; я хочу отредактирова через форму слово ZetRider..

   
 
 автор: JIEXA   (26.03.2006 в 00:48)   письмо автору
 
   для: ZetRider   (25.03.2006 в 22:45)
 

В теме по ссылке http://softtime.ru/forum/read.php?id_forum=1&id_theme=15053&page=1 я объяснил вам как это можно сделать

   
 
 автор: ZetRider   (26.03.2006 в 08:13)   письмо автору
 
   для: JIEXA   (26.03.2006 в 00:48)
 

Да но етот вариант както работает глючно..... лана сасм пойму.

   
 
 автор: JIEXA   (26.03.2006 в 11:47)   письмо автору
 
   для: ZetRider   (26.03.2006 в 08:13)
 

что именно глючно? давайте вместе исправим

   
 
 автор: cheops   (26.03.2006 в 15:03)   письмо автору
 
   для: ZetRider   (25.03.2006 в 22:41)
 

Файл edit_conf.php должен выглядятеть примерно следующим образом
<?php
  
// Читаем содержимое файла config.php
  
$content file_get_contents("config.php");

  
// Производим замену на новые значения
  
$content preg_replace('|\$name[\s]*=[\s]*"([^"]+)";|',
                          
'\$name="'.$_POST['teamname'].'";',
                          
$content);
  
$content preg_replace('|\$icq[\s]*=[\s]*"([^"]+)";|',
                          
'\$icq="'.$_POST['sitename'].'";',
                          
$content);
  echo 
$content;
  
// Записываем содержимое файла
  
$fd fopen("config.php","w");
  if(!
$fd) exit("Не возможно открыть файл");
  
fwrite($fd,$content);
  
fclose($fd);

  
// Осуществляем автоматический переход на главную страницу
  
echo "<HTML><HEAD>
          <META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
        </HEAD></HTML>"
;
?>

PS Только лучше для таких целей использовать более "машинный формат", вроде
name||ZetRider
icq||662495

С ним проще работать и можно обойтись без регулярных выражений.

   
 
 автор: ZetRider   (26.03.2006 в 19:36)   письмо автору
 
   для: cheops   (26.03.2006 в 15:03)
 

хм.. а если так хранить инфу в конфиге

name||ZetRider 
icq||662495


то как выводить на екран к примеру
<?=$name?>

?

   
 
 автор: cheops   (27.03.2006 в 01:48)   письмо автору
 
   для: ZetRider   (26.03.2006 в 19:36)
 

Да даже не так, а допустим
ZetRider||662495

т.е. вы будете знать, что первый столбец - это name, второй icq и т.д. достаточно будет прочитать строку $str из файла и разбить её на части при помощи функции explode("||",$str);

   
 
 автор: ZetRider   (27.03.2006 в 11:45)   письмо автору
 
   для: cheops   (27.03.2006 в 01:48)
 

так... тогда выходит такой код:

<?php
  $arr 
file("config.php");
  
$i 0
  foreach(
$arr as $line)
  {
    
$i++; 
    list(
$peremen$znachen) = explode("||"$line);
    
$user['peremen'][]       = $peremen;
    
$user['znachen'][]        = $znachen;
  }
  for(
$i=count($arr)-1$i>=0$i--)
  {
    echo 
"
"
.$user['znachen'][$i]."
<br> 
    "
;
  }
?>


но всеравно непонять ((

   
Rambler's Top100
вверх

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