[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с заменой текста в файле
olimpset
Заменяю текст в файле так:
$filename = ADMIN_SHABLON_DIR.'/set.ini';
$file = file_get_contents($filename);
$file = str_replace('Я', 'bar', $file);
file_put_contents($filename, $file);

Но если я напишу в строке несколько букв "я", то все равно заменится одна а не все, как сделать что бы все заменились?
И как сделать что бы заменялось в определенной строке, где есть параметр "title" или другой?
Я говорю про конфигурацию, и надо заменить например где title = true, заменить на false.
Игорь_Vasinsky
)) preg_replace()

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
olimpset
Да знаю я про нее, но что то не могу с ней сделать, покажите пример!
Игорь_Vasinsky
 $text = 'Но если я напишу в строке несколько букв "я", то все равно заменится одна а не все, как сделать что бы все заменились?
И как сделать что бы заменялось в определенной строке, где есть параметр "title" или другой?
Я говорю про конфигурацию, и надо заменить например где title = true, заменить на false.'
;


echo preg_replace("#(я)#iu", "-", $text);


u - для юникода

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
olimpset
Спасибо, но кодировка у меня стоит CP1251, значит u не надо, а что i значит? и Как найти строку в файле где есть определенное слово, например title?
Игорь_Vasinsky
i - не учитывать регистр букв
u - да, тока для юникода

Цитата
Как найти строку в файле где есть определенное слово, например title?


дай кусок с этим текстом.

preg_replace() - в первом аргументе работает с регулярками (паттернами) - по этому нужно анализировать шаблон для поиска - так с ходу не напишешь

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
olimpset
Вот в файле две строки:
title = true
text = true

Как заменить значение text, если он во 2 строке?
Игорь_Vasinsky
да хоть так))

preg_replace("#text = (true)#isU", "text = false", $text);


_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
olimpset
Я думал, думал... и получилось сделать так:

$setting = parse_ini_file(ADMIN_SHABLON_DIR.'/set.ini');
$file = file_get_contents(ADMIN_SHABLON_DIR.'/set.ini');
$file_load = fopen(ADMIN_SHABLON_DIR.'/set.ini','w');
fwrite($file_load, str_replace($setting['text'], "Новое значение", $file));
fclose($file_load);

Спасибо за подсказку!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.