Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: fopen()
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (2): [1] 2 »   

> Без описания
scar
Отправлено: 21 Августа, 2007 - 09:55:15
Post Id



Include


Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2007  
Откуда: Киев

Карма 0




Помогите пожалуйста!

Возник вопрос: Хочется написать код с функцией fopen("./file.txt/","a+"Подмигивание;, так что бы функция писала текст в определенное место файла file.txt.

Например в файле содержутся строки:
Цитата:
А вообще неплохо бы было здесь школу организовать,
а не посылать нас новеньких на... на сайты.
Кстати там тоже ничему хорошему не научат. Скачал кучу книг и уроков
а как начал читать то уснул как в школе. Куда более интересно что нибудь
чужое поковырять или здесь поспрашивать


Через текстовую форму записать например слово "ОТКАЗАНО". Вот так:

Цитата:
А вообще неплохо бы было здесь школу организовать,
а не посылать нас новеньких на... на сайты.
ОТКАЗАНО
Кстати там тоже ничему хорошему не научат. Скачал кучу книг и уроков
а как начал читать то уснул как в школе. Куда более интересно что нибудь
чужое поковырять или здесь поспрашивать


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

и
Цитата:
Кстати там тоже ничему хорошему не научат. Скачал кучу книг и уроков
а как начал читать то уснул как в школе. Куда более интересно что нибудь
чужое поковырять или здесь поспрашивать
?
 
 Top
yura3d
Отправлено: 21 Августа, 2007 - 10:07:50
Post Id


Super Member


Покинул форум
Сообщений всего: 624
Дата рег-ции: Июль 2007  
Откуда: Минск, Беларусь

Карма 17




scar
А в чём собственно проблема? Можно прочитать файл, вывести его содержимое в форму, а там уже изменить как душе угодно. Напиши подробнее как ты хочешь, постараюсь помочь.

(Отредактировано автором: 21 Августа, 2007 - 10:08:44)

 
 Top
TvoyWeb Администратор
Отправлено: 21 Августа, 2007 - 10:41:11
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




scar пишет:
писала текст в определенное место файла file.txt.

в PHP нет такой возможности дописи в файл без предварительного чтения.
 
 Top
scar
Отправлено: 21 Августа, 2007 - 16:15:13
Post Id



Include


Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2007  
Откуда: Киев

Карма 0




yura3d

Подойдем с другой стороны! У меня есть PHP файл, в котором написан весь код страницы, мне надо в середину этого кода вставить коментирии через функции fopen(). Как это зделать?

TvoyWeb пишет:
в PHP нет такой возможности дописи в файл без предварительного чтения.


Я знаю. Просто не хотел расписывать весь код! Хорошо

(Отредактировано автором: 21 Августа, 2007 - 16:15:55)

 
 Top
yura3d
Отправлено: 22 Августа, 2007 - 01:51:28
Post Id


Super Member


Покинул форум
Сообщений всего: 624
Дата рег-ции: Июль 2007  
Откуда: Минск, Беларусь

Карма 17




Цитата:
Подойдем с другой стороны! У меня есть PHP файл, в котором написан весь код страницы, мне надо в середину этого кода вставить коментирии через функции fopen(). Как это зделать?


Постараюсь предложить один из возможных вариантов как это сделать. Предположим, у нас есть шаблон page.html, в нём содержится код определённой страницы. Задача наша состоит в том, чтобы обрабатывая данный файл, выводить его содержимое в браузер с добавленными комментариями. Однако нам нужно чётко знать, куда нужно вставлять комментарии. Введём для указания места их вставки обозначение <! -- Комментарии //-->. Вот пример того, как это можно сделать:

CODE:
............<br>
Код страницы<br>
Код страницы<br>
<br>
<!-- Комментарии //--><br>
<br>
Код страницы<br>
Код страницы<br>
............<br>


Теперь осталось написать скрипт, который бы обрабатывал шаблон и заменял обозначение <!-- Комментарии //--> собственно на тексты комменатриев. Вот как должен выглядеть скрипт page.php, который будет обрабатывать шаблон:

CODE:
<?php

$path = 'page.html'; // Путь к файлу с со страницей
$sign = '<!-- Комментарии //-->'; // Метка на странице, куда будем добавлять комментарии
$comments = 'Комментарий1<br>Комментарий2<br>Комментарий3'; // Тексты комментариев

$file = @fopen($path, 'r') or die('Не могу открыть файл');
@flock($file, 1);
$read = @fread($file, filesize($path));
@flock($file, 3);

$read = str_replace($sign, $comments, $read);

echo $read;

fclose($file);
?>


Теперь всякий раз при запуске page.php пользователю будет выдаваться уже обработанная страница с добавленными комментариями из переменной $comments. Сами же комментарии лучше хранить в отдельном файле, считывая их в переменную $comments при открытии данного скрипта.
 
 Top
scar
Отправлено: 22 Августа, 2007 - 02:37:54
Post Id



Include


Покинул форум
Сообщений всего: 278
Дата рег-ции: Июль 2007  
Откуда: Киев

Карма 0




yura3d

Спасибо!

Но разве str_replace() не заменяет что-то одно на что-то другое?! Однако И если посудить логически то коментарий можно будет добавить только один раз! Почему? Потому что функция str_replace() заменит строчку "<!-- Комментарии //-->" на строчку "'Комментарий1<br>Комментарий2<br>Комментарий3'" и при повторном открытие файла page.php в нем переменная $sign не найдет указаную строку "<!-- Комментарии //-->" и не сможет записать туда $comments.
 
 Top
Furax
Отправлено: 22 Августа, 2007 - 03:24:23
Post Id



Бледнотик


Покинул форум
Сообщений всего: 1472
Дата рег-ции: Март 2007  
Откуда: Иркутск, Сибирь, СССР

Карма 32




scar
Считай построчно в массив, в нужное место массива вставь строку и сохрани массив построчно.
 
 Top
yura3d
Отправлено: 22 Августа, 2007 - 03:28:17
Post Id


Super Member


Покинул форум
Сообщений всего: 624
Дата рег-ции: Июль 2007  
Откуда: Минск, Беларусь

Карма 17




Цитата:
Но разве str_replace() не заменяет что-то одно на что-то другое?!


Да, всё верно.

Цитата:
И если посудить логически то коментарий можно будет добавить только один раз! Почему? Потому что функция str_replace() заменит строчку "<!-- Комментарии //-->" на строчку "'Комментарий1<br>Комментарий2<br>Комментарий3'" и при повторном открытие файла page.php в нем переменная $sign не найдет указаную строку "<!-- Комментарии //-->" и не сможет записать туда $comments


Дело в том что у данного скрипта несколько другой принцип работы. Результат выполнения не записывается в файл шаблона, а только выдаётся в браузер пользователя. Таким образом строчка <!-- Комментарии //--> не будет удалена из файла шаблона, и всё будет работать верно. Такой подход имеет целый ряд преимуществ по сравнению с непосредственной записью в файл шаблона. Во-первых, можно будет в будущем изменить дизайн шаблона без ущерба для уже размещённых комментариев, а во-вторых, можно проще реализовать редактирование/удаление комментариев и прочие полезные функции. Подобный подход применяется в ExBB и многих других скриптах.
 
 Top
TvoyWeb Администратор
Отправлено: 22 Августа, 2007 - 04:04:41
Post Id



Главный здесь


Покинул форум
Сообщений всего: 7072
Дата рег-ции: Нояб. 2003  
Откуда: Tashkent Uz

Карма 52




yura3d
В твоем варианте проще использовать file_get_contents($filename); . Работает быстрее, чем открытие и считывание.
 
 Top
yura3d
Отправлено: 22 Августа, 2007 - 04:13:14
Post Id


Super Member


Покинул форум
Сообщений всего: 624
Дата рег-ции: Июль 2007  
Откуда: Минск, Беларусь

Карма 17




TvoyWeb
Да, действительно. Просто изначально вопрос стоял про фунцкию fopen() вот с неё и начал.
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0528]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33