Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
8 / 8 / 7
Регистрация: 26.09.2013
Сообщений: 127

Редактирование файла

03.03.2016, 13:56. Показов 2754. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вообщем суть такая, допустим у меня есть какой-то index.php или index.html
и в нем самая обычная структура документа.
HTML5
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="UTF-8">
    <title> Название сайта </title>
  </head>
  <body>
   
  </body>
</html>
и есть файл admin.php
и мне нужно как-то через admin.php сделать так что бы я смог поменять название сайта <title>
есть какие варианты? или же проще сделать файл настроек setings.php и в нем хранить названия сайта? тогда вопрос как мне получить значение переменной $titlePage = "Названия сайта"; и поменять это значение в файле admin.php
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.03.2016, 13:56
Ответы с готовыми решениями:

Редактирование txt-файла
Установил денвер. Запусти. Создал в готовой папке test1.ru index.php. Вбил туда код. Необходимо редактирование txt файла в браузере с...

Редактирование HTML файла
Доброго времени суток Задача такая, есть index.html и admin.html. На странице admin.html есть форма в которую вписывается цифра и...

Редактирование текстового файла
Здравствуйте. Помогите пожалуйста с кодом PHP. Как програмно решить такую задачу: Поиск и удаление указанных заранее символов в файле...

15
Native x86
Эксперт Hardware
 Аватар для quwy
6859 / 3791 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861
03.03.2016, 14:05
Такие вещи нужно хранить во внешнем хранилище. БД или текстовый файл, а выводить скриптом. Как-то так:
PHP
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="UTF-8">
    <title> <?php echo GetTitleFromStorage(); ?> </title>
  </head>
  <body>
   
  </body>
</html>
Функция GetTitleFromStorage() -- это ваша функция, описанная в этом или другом php-файле, которая извлекает тайтл из внешнего хранилища и возвращает его в виде строки.
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
03.03.2016, 14:14
или в php-файле, например, titles.inc.php, в виде массива c ключами имен файлов с формой для апдейта, к которой можно обращаться так же из админки.
PHP
1
2
3
4
5
<?php
$arr['main'] = "PHP"; 
$arr['lesson'] = "HTML"; 
$arr['learning'] = "CSS";
?>
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
include 'titles.inc.php';
?>
<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="UTF-8">
    <title> <?=$arr['main']?> </title>
  </head>
  <body>
   
  </body>
</html>
0
8 / 8 / 7
Регистрация: 26.09.2013
Сообщений: 127
03.03.2016, 14:14  [ТС]
Полностью с вами согласен насчет MySQL, но перед мной другая задача стоит. Но, тут вопрос стоит в том, что не должно быть как вы выразились "внешних хранилищ" А, нужно прям перезаписать значение в файле setings.php через admin.php
PHP
1
 $titlePage = "Названия сайта";
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
03.03.2016, 14:19
Цитата Сообщение от Максим_nCoder Посмотреть сообщение
нужно прям перезаписать значение в файле
а чем не устраивает мой вариант?
только немного не так:
в admin.php будет форма с action="titles.inc.php".
Значения массива будут прописаны в полях формы и нужно будет только набить другое название и послать запрос.
0
Native x86
Эксперт Hardware
 Аватар для quwy
6859 / 3791 / 1026
Регистрация: 13.02.2013
Сообщений: 11,861
03.03.2016, 14:24
Тогда проще всего создать комментарии-якоря:
PHP
1
$titlePage = /*title*/"Названия сайта"/*title*/;
А заменять регуляркой
PHP
1
2
3
4
$new_title = ...;
$data = file_get_contents('index.php');
$data = preg_replace('/\/\*title\*\/.*?\"(.*)\".*?\/\*title\*\//i', $new_title, $data);
file_put_contents('index.php', $data);
Добавлено через 1 минуту
P.S. Но доступность файлов скриптов на перезапись для кода самих скриптов -- очень плохо с т.з. безопасности.
0
8 / 8 / 7
Регистрация: 26.09.2013
Сообщений: 127
03.03.2016, 14:29  [ТС]
как раз токи ваш вариант самый подходящий для меня, но как послать запрос прям с кнопки?
вот я для себя сейчас накидал вариант
admin.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
  include 'settings.php';
?>
 
<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="UTF-8">
    <title> <?=$arr['titleAdminPanel']?> </title>
  </head>
  <body>
   <form action="settings.php">
      <h3 style="display: inline-block;">Название главной страницы: </h3>
      <input type="text" value="<?=$arr['main']?>">
     <button>поменять значение</button>
   </form>
 
  </body>
</html>
settings.php
PHP
1
2
3
4
5
<?php
  $arr['main'] = "PHP"; 
  $arr['titleAdminPanel'] = "Админ панель"; 
  $arr['learning'] = "CSS";
?>
index.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
include 'settings.php';
?>
<!DOCTYPE html>
<html lang="ru">
  <head>
    <meta charset="UTF-8">
    <title> <?=$arr['main']?> </title>
  </head>
  <body>
   
  </body>
</html>
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
03.03.2016, 14:35
admin.php
PHP
1
2
3
4
5
6
<?php
<form action="titles.inc.php" method="post">
<input type="text" name="main">
<input type="submit" name="submit" value="ok">
</form>
?>
titles.inc.php
PHP
1
2
3
4
5
6
7
8
9
10
<?php
if(isset($_POST['submit'])){
    $arr['main'] = $_POST['main'];
}
else{
    $arr['main'] = "PHP"; 
    $arr['titleAdminPanel'] = "Админ панель"; 
    $arr['learning'] = "CSS";
}
?>
0
8 / 8 / 7
Регистрация: 26.09.2013
Сообщений: 127
03.03.2016, 15:28  [ТС]
Странно конечно когда задумался над этим кодом, он же физически получается не будет менять значение этого массива? Сейчас попробовал запустить, не работает тупо перебрасывает на titles.inc.php и значение не меняется, как в index.php было название php так и осталось

Добавлено через 32 минуты
Получается, что массив будет жить только от момента нажатия кнопки до момента закрытия вкладки.

Добавлено через 6 минут
Да, после 3х часов танцев с бубном, сижу думаю, что походу дела без bd сделать адекватно не получится, просто суть заключалось в том, что бы легко получать данные из html файла и перезаписать их через админку без использования MySQL
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
03.03.2016, 15:53
Да, моя ошибка. Не получится так, как я предложил.
Надо писать в txt, оттуда считывать как массив и при изменении какого-либо элемента перезаписывать весь файл.
Прогонять через foreach() и потом парсить, сравнивая название файла с ключом.
Но это в теории. Сам не проверял.
0
8 / 8 / 7
Регистрация: 26.09.2013
Сообщений: 127
03.03.2016, 16:13  [ТС]
Смотрите допустим есть файл
var.php
PHP
1
<?php return '7';
и есть
index.php
PHP
1
file_put_contents("var.php", "<?php return '1';");
как реализовать что бы было много переменных?
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
03.03.2016, 16:19
Цитата Сообщение от Максим_nCoder Посмотреть сообщение
<?php return '7';
Цитата Сообщение от Максим_nCoder Посмотреть сообщение
<?php return '1';"
не понял. откуда будут возвращаться значения?
0
8 / 8 / 7
Регистрация: 26.09.2013
Сообщений: 127
03.03.2016, 16:37  [ТС]
да факт в том, что file_put_contents перезаписывает файл var.php и будет сначала я запускаю
index.php
PHP
1
file_put_contents("var.php", "<?php return '1';");
и он перезаписал получается файл, и теперь я открываю какой нибудь файл result.php
PHP
1
2
$a = require 'var_a.php';
echo $a;
и уже получаю ответ

Добавлено через 11 минут
вообщем чушь какая-то получается) вопрос аннулируется)
0
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
03.03.2016, 16:44
Лучший ответ Сообщение было отмечено Максим_nCoder как решение

Решение

В общем.
Есть 1.txt
---------
main:PHP
learning:CSS
titleAdminPanel:Админ панель
----------------

PHP
1
2
3
4
5
6
7
8
$str = file('1.txt');
    foreach($str as $k => $v){
        $v1 = explode(":", $v);
            if($v1[0] == 'main') $main = 'PHP';
            if($v1[0] == 'learning') $learning = 'CSS';
            if($v1[0] == 'titleAdminPanel') $titleAdminPanel = 'Админ панель';
    }
    echo $main;//PHP
И отсюда страницы получают титлы.

Добавлено через 4 минуты
не чушь. если грамотно настроить все это на чтение и перезапись файла, то будет очень даже...
0
8 / 8 / 7
Регистрация: 26.09.2013
Сообщений: 127
03.03.2016, 16:55  [ТС]
спасибо большое за помощь, и потраченное время на мои тупые вопросы и запросы
1
 Аватар для Пифагор
2172 / 1655 / 840
Регистрация: 10.01.2015
Сообщений: 5,207
03.03.2016, 16:58
Максим_nCoder, да мне самому интересно стало, как это реализовать. Поэтому и Вам спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.03.2016, 16:58
Помогаю со студенческими работами здесь

Редактирование txt файла
Доброго времени суток. Нужно сделать, так что бы из файла допустим /file.txt выгружался весь текст на страницу в поле для редактирования...

Редактирование файла php
Здравствуйте! Помогите пожалуйста вот в чём. Нужно отредактировать файл php такого вида &lt;? $kakyanybyd //комментарий после...

Чтение и редактирование текстового файла
Здравствуйте! Требуется написать программу на php devel studio со следующим функционалом. Программа ищет файл по названию, открывает...

Редактирование определенной строки из файла
Есть файл members.dat, нужно чтобы при запросе $_GET бралась строка со значением из переменной $rows = file(&quot;members.dat&quot;);....

Редактирование файла перед скачиванием
Здравствуйте, на сайте приходится в разные темы заливать почти однотипные файлы. Я подумал, а ведь можно залить 1 файл на сайт и перед...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru