X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Код для редактирования PHP-файла средствами php
sc2r2bey
sc2r2bey
Topic Starter сообщение 18.3.2011, 15:41; Ответить: sc2r2bey
Сообщение #1


подскажите, допусти есть файл config.php следующего содержания
[php]$config = array();
$config['hostname'] = 'localhost';
$config['base'] = 'base';
$config['user'] = 'root';
$config['password'] = '';[/php]
а как мне перезаписать например следующий элемент массива $config['password'] , задав ему другое значение?


--------------------
Заметки о разработке и не только
программирую web и для we
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DCdomain
DCdomain
сообщение 18.3.2011, 15:48; Ответить: DCdomain
Сообщение #2


Ну так и пишите $config['password']='новое значение';
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 18.3.2011, 15:55; Ответить: sc2r2bey
Сообщение #3


я же написал средствами php нужно менять значения


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DCdomain
DCdomain
сообщение 18.3.2011, 15:59; Ответить: DCdomain
Сообщение #4


[php]$config['password']='новое значение';[/php]

Разьве не средства php?

Или Вам нужно просто строчку поменять в config.php?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 18.3.2011, 16:03; Ответить: sc2r2bey
Сообщение #5


(DCdomain @ 18.3.2011, 14:59) *
$config['password']='новое значение';

как я сразу не догодался
(DCdomain @ 18.3.2011, 14:59) *
Разьве не средства php?

нет это ты предлагаешь ручками делать
(DCdomain @ 18.3.2011, 14:59) *
Или Вам нужно просто строчку поменять в config.php?


в третий раз повторяю, скрипт считывает содержимое файла config.php, ищет нужный элемент массива, меняет значение и записывает в config.php

разницу улавливаешь?


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 18.3.2011, 16:58; Ответить: ZiTosS
Сообщение #6


surfer,
1) Вариант с четко определенной структурой. Полная перезапись конфиг-файла.
Таким способом, мы четко знаем структуру и что содержится в файле config.php. Скрипт изначально считал переменные из файла config.php, допустим, в массив (или они в файле уже в массиве, а мы его просто подгружаем их).
Далее, если мы изменяем значение в конфиге, то заново собираем весь записываемый контент из массива + новое значение и помещаем всё в config.php
2) Вариант с любой структурой файла, но строго определенной формой строки. Полная перезапись конфиг-файла.
Мы открываем конфиг файл и считываем его полностью в переменную. С помощью регулярного выражения или вхождения подстроки ищем то что нужно заменить и делаем подмену. Далее замененный контент записываем полностью обратно в файл.

P.s.: Перезаписывать одну строчку, если объем старых и новых данных не совпадает, трудоемкая задача, т.к. запись в файл происходит поверх старых символов (если они присутствуют), поэтому мы можем выйти за пределы замены старых данных и удалить что-то лишнее. Конечно подобную задачу реализовать возможно, но не нужно.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
sc2r2bey
sc2r2bey
Topic Starter сообщение 18.3.2011, 17:03; Ответить: sc2r2bey
Сообщение #7


я тоже так считаю, что надо перезаписывать, есть нюансы над которыми надо подумать


--------------------
Заметки о разработке и не только
программирую web и для we
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Banderas
Banderas
сообщение 18.3.2011, 17:19; Ответить: Banderas
Сообщение #8


разве нельзя через регулярки найти строку
$config['password'] = '';

и полностью переписать эту строку?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DCdomain
DCdomain
сообщение 18.3.2011, 17:26; Ответить: DCdomain
Сообщение #9


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

Позволяет создавать и редактировать файлы такого плана:
[php]<?php
// Timeout in cURL
// operations
$cfg_curl_timeout = 10;

// Banned IPs
$cfg_banned_ips = array (
0 => '10.10.10.10',
1 => '10.20.30.40',
);

// ROOTDIR is defined
// before including
// config file
$cfg_cachedir = ROOTDIR.'/maincache';

?>[/php]

Я думаю не сложно будет допилить и для работы с ассотиативными массивами.

Прикрепленный файл  confedit_2008_06_08.tar.gz ( 6,57 килобайт ) Кол-во скачиваний: 111
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 18.3.2011, 17:48; Ответить: ZiTosS
Сообщение #10


Banderas,
(Banderas @ 18.3.2011, 16:19) *
разве нельзя через регулярки найти строку

и полностью переписать эту строку?

Попробуй-ка перезаписать данные в середину файла, не стерев (не изменив) при этом лишнего, это касается, когда старые и новые данные разной длины (кол-во байт разное).
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) ✅ sms.chekons.com - ⭐ Сервис для получения SMS на реальные номера USA "Non-VoIP, безлим SMS, API" ⭐
Сервис для получения SMS на реальные номера USA
13 Chekon 4078 18.4.2024, 11:48
автор: Chekon
Открытая тема (нет новых ответов) Rebex.io – Ваша инновационная платформа для обмена криптовалюты!
1 Rebex 684 17.4.2024, 11:50
автор: Rebex
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
11 Aloof 2819 16.4.2024, 12:48
автор: diviner99
Горячая тема (нет новых ответов) Betatransfer.net - прием платежей для HIGH RISK проектов, интернет эквайринг и мерчант онлайн оплат
54 arendator 34836 15.4.2024, 15:16
автор: arendator
Горячая тема (нет новых ответов) ⭕Антидетект браузер AdsPower для эффективной работы с мультиаккаунтами!
83 AdsPower 24425 14.4.2024, 22:52
автор: AdsPower


 



RSS Текстовая версия Сейчас: 20.4.2024, 0:48
Дизайн