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

Форум PHP

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

 

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

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

тема: работа с файлами
 
 автор: cyxapuk   (11.03.2006 в 22:53)   письмо автору
 
 

у нас есть некий файл ... к примеру
config.php

в котором где нить в середине есть переменная

$text = 'Hello';

как поменять ее на $text = 'Hello World';

   
 
 автор: Panker   (12.03.2006 в 01:17)   письмо автору
 
   для: cyxapuk   (11.03.2006 в 22:53)
 

форму обычную сделай в action кажи comfig.php и имя поля формы введи эту переменую и всё ) на серваке ставь права 777

   
 
 автор: Shorr Kan   (12.03.2006 в 08:38)   письмо автору
 
   для: cyxapuk   (11.03.2006 в 22:53)
 

Есть несколько вариантов. Например, можно регулярными выражениями.


<?
$textf
=file_get_contents($file);
$pattern="|text='([^\"]+)';|i"
$text=preg_match_all($pattern$textf$bad);
$textf=str_replace('$'.$bad[0],'$text=\'Hello World\'',$textf);
?>


Я не проверял, но если я не ошибся, то должно работать. Впрочем, это довольно грубо и привести можно в более удобный вид.
Есть и другой вариант. Например:


<?
$good
='$text = \'Hello World\'';
$text=explode('$text=',file_get_contents($file));
$bad=substr($text[1],strpos($text[1],"'"));
$text=$text[0].str_replace($bad,$good,$text[1]);
?>

   
 
 автор: ZetRider   (12.03.2006 в 12:29)   письмо автору
 
   для: Shorr Kan   (12.03.2006 в 08:38)
 

вот файл
config.php:

<?
//Настройки
$teamname   ="Att@ck";
$sitename   ="Att@ck"
$siteurl    ="http://attack.h14.ru"
?>


вот как мне в нем через форму менять названия ?

   
 
 автор: Shorr Kan   (12.03.2006 в 13:56)   письмо автору
 
   для: ZetRider   (12.03.2006 в 12:29)
 


<?
if(isset($_POST['t1'])){
$val='$teamname="';
}
if(isset(
$_POST['t2'])){
$val='$sitename="';
}
if(isset(
$_POST['t3'])){
$val='$siteurl="';
}
$file=explode($val,file_get_contents("config.php"));
$bad=substr($file[1],strpos($file[1],'"'));
$file=file[0].str_replace($bad,$_POST['new'],$file[1]);
$fp=fopen("config.php","w+");fwrite($fp,$file);fclose($fp);
?>


Разумеется, в форме должно быть поле text с именем new - для ввода нового значения... и какой-нибудь переключатель или три разных кнопки - чтобы приходило t1 , t2 или t3 .

И проследите, чтобы в config.php знаки равенства стояли вплотную к переменным.

   
 
 автор: cyxapuk   (12.03.2006 в 19:37)   письмо автору
 
   для: Shorr Kan   (12.03.2006 в 13:56)
 

не .... это не все не то ... здесь жесткая зависимость от месторасположения переменной в файле .... $file[1] и тп......

притом через форму - это абсолютно топорный способ ....
регулярные выражения это тоже все слишком сложно ....

а к примеру ... если это будет не $text , а $text['first'] и тп ....
не ... нужен универсальный способ ....

   
Rambler's Top100
вверх

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