Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Информационный Канал Subscribe.Ru

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 220
от 09.01.2006, 00:06

Администратор:Калашников О.А.
В рассылке:Подписчиков: 211, Экспертов: 39
В номере:Вопросов: 2, Ответов: 11


Вопрос № 32564: В общем у меня такой вопрос, мне нужно изменять значения отдельных переменных в файле (образец ниже). через fopen каждую строку тягать тяжко, может в php есть что нибудь вроде inifiles в delphi? потеря комментов в принципе допустима, имена вс...
Вопрос № 32604: Приветствую вас, уважаемые ЭКСПЕРТЫ!! У меня такой вопрос: Я сделал гостевую книгу. Она записывает все сообщения в MySQL. Как сделать, чтобы в выводимом сообщении тэги бы не работали????? А то один ко мне тут зашёл.....Всё испаганил, м......

Вопрос № 32.564
В общем у меня такой вопрос, мне нужно изменять значения отдельных переменных в файле (образец ниже).
через fopen каждую строку тягать тяжко, может в php есть что нибудь вроде inifiles в delphi?
потеря комментов в принципе допустима, имена все понятные, да и файл вручную редактировать придется один раз, затем только автоматом.

Приложение:

Отправлен: 03.01.2006, 09:24
Вопрос задал: Alexkht (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Samum
Здравствуйте, Alexkht!
Вариантов, как всегда, несколько, весь вопрос в том, какой предпочесть.
1. Использовать стандартную функцию php parse_ini_file() для получения списка переменных и их значений. После этого изменить те переменные, которые в этом нуждаются и сохранить весь список в файл. Подробнее об этом можно почитать в руководстве или здесь: http://ru.php.net/manual/ru/function.parse-ini-file.php К тому же там можно найти полезные комментарии пользователей.
2. Второй вариант проще, хотя и требует некоторой "доработки" php, в частности, установленной Zend машины. Он основывается на использовании макросов PHP_INI_BEGIN(), PHP_INI_ENTRY() и PHP_INI_END(). Подробнее об этом можно ознакомиться по адресу http://ipm.kstu.ru/it/doc/php42/zend.ini-file-support.html
---------
Если бы программистам за их ошибки отрывали части тела, то в конце концов им пришлось бы использовать голову!
Ответ отправил: Samum (статус: Специалист)
Отправлен: 03.01.2006, 10:49
Оценка за ответ: 5
Комментарий оценки:
спасибо
буду переделывать

Отвечает: XMF
Здравствуйте, Alexkht!
--
я посоветовал бы создать собственный класс для такой работы...
Каждую строку можно загрузить в масив через file()
что-то отредактирвать в них, а потом перезаписать файл уже новыми строками.

Ну а чтобы прочитать ini-файл, существует функция parse_ini_file(str, bool), что ты наверное уже знаешь..
-=-=-
Ответ отправил: XMF (статус: 1-ый класс)
Отправлен: 03.01.2006, 15:11

Отвечает: Дмитрий Иванов
Здравствуйте, Alexkht!

а не проще ли сразу имплементировать этот файл с помощю require("твой_файл")

и затем спокойно использовать переменный?
---------
ставя оценку - подумай, может ты не все описал.
Ответ отправил: Дмитрий Иванов (статус: Студент)
Отправлен: 04.01.2006, 02:41
Оценка за ответ: 4
Комментарий оценки:
Вы не поверите, так и было сделано...
но мне нужно изменять эти переменные...

Отвечает: Zysoftik
Здравствуйте, Alexkht!

Судя по всему, Вы используете формат записи ini-файла как у обычного скрипта.
Значит, Вы можете при зарузке Ваших скриптов использовать просто
include("filename.php");
а при сохранении, просто создайте ф-цию вида:
function IniSave($filename)
{

$f=fopen($filename,"w");
fwrite($f,"//######################MY INI FILE##############");
fwrite($f,"$ini_var1=".$ini_var1 \My Var");
...
fclose($f);
}

Таким образом, получится, что Вы просто каждый раз перезаписываете файл новыми значениями, а при загрузке Вы его просто подключаете.
Ответ отправил: Zysoftik (статус: 1-ый класс)
Отправлен: 04.01.2006, 10:32


Вопрос № 32.604
Приветствую вас, уважаемые ЭКСПЕРТЫ!!
У меня такой вопрос:
Я сделал гостевую книгу. Она записывает все сообщения в MySQL. Как сделать, чтобы в выводимом сообщении тэги бы не работали?????
А то один ко мне тут зашёл.....Всё испаганил, м...к. Все таблицы разъехались... Помоги пожалуйста...
Отправлен: 03.01.2006, 23:28
Вопрос задал: Stamm (статус: 9-ый класс)
Всего ответов: 7
Мини-форум вопроса >>> (сообщений: 0)

Отвечает: Doctor013
Здравствуйте, Stamm!
Есть несколько способов
Обработай сообщение strip_tags - это вырежет все hTML и PHP теги
Или обработай htmlspecialchars - это заменит все теги их HTML-сущностями, то есть '<' (знак "меньше чем") преобразуется в '<'

'>' (знак "больше чем") преобразуется в '>'

---------
the non-fulfilment one's promise is a cause for someone's mistrust
Ответ отправил: Doctor013 (статус: 3-ий класс)
Отправлен: 03.01.2006, 23:54
Оценка за ответ: 5
Комментарий оценки:
Огромное спасибо

Отвечает: XMF
Здравствуйте, Stamm!
--
Если ты хочешь, чтобы были видны теги, используй:
$str=str_replace("&", "&", $str);
$str=str_replace("<", "<", $str);
--
Если нужно вырезать, то кажеться есть $str=strip_tags($str)
Ответ отправил: XMF (статус: 1-ый класс)
Отправлен: 04.01.2006, 01:08
Оценка за ответ: 5
Комментарий оценки:
Предыдущий способ лучше. Но всё-равно спасибо...

Отвечает: Дмитрий Иванов
Здравствуйте, Stamm!

ты можешь использовать htmlspecialchars(string) - эта функция заменяет htmlые символы на их аналоги допустим < заменится на аналог замещения &..

Приложение:

---------
ставя оценку - подумай, может ты не все описал.

Ответ отправил: Дмитрий Иванов (статус: Студент)
Отправлен: 04.01.2006, 02:46
Оценка за ответ: 5

Отвечает: Ерёмин Андрей
Здравствуйте, Stamm!
Для нужно заменить текст сообщения на строку, которая в html будет выглядеть точно также. Минимум - заменить < на &lt;, а > - на &gt;. Можно, конечно, сделать это вручную, через str_replace(), но есть специальная функция - htmlspecialchars():

$msg = htmlspecialchars($msg, ENT_QUOTES);
---------
Работа - не волк, а произведение силы на расстояние!
Ответ отправил: Ерёмин Андрей (статус: Профессионал)
Отправлен: 04.01.2006, 10:21
Оценка за ответ: 5

Отвечает: Zysoftik
Здравствуйте, Stamm!

В PHP есть функция

string strip_tags ( string str [, string allowable_tags])

Очень удобная функция. Если ей передать только 1-й параметр, то все возможные теги будут вырезаны из текста.
Нужно просто добавить ее в выод подозреваемых на возможное наличие тегов полей БД. Т.е. написать что-то типа:
...
echo strip_tags($row[1])." ";
...
Ответ отправил: Zysoftik (статус: 1-ый класс)
Отправлен: 04.01.2006, 10:37

Отвечает: Константин
Здравствуйте, Stamm!
смотри функцию htmlspecialchars() и подобные. они заменяют < на < (less than) и > на > (greater than), которые отображаются броузером как меньше и больше и не влияют на форматирование
Ответ отправил: Константин (статус: 2-ой класс)
Отправлен: 04.01.2006, 17:09
Оценка за ответ: 5

Отвечает: Schmak
Здравствуйте, Stamm!
Можно попробовать сделать так:
while (strpos($str,'<')!=false)
{
$a=strpos($str,'<');
$b=strpos($str,'>');
$s=substr($str,$a,$b);
$str=str_replace($s,'',$str);
}
Этот код удаляет все, что похоже на html-теги (даже если там написан какой-то текст).
Еще вариант - использовать функцию htmlspecialchars($str), тогда все теги будут выведены как простой текст.

---------
Не всё то Windows, что висит!
Ответ отправил: Schmak (статус: Практикант)
Отправлен: 06.01.2006, 13:23


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2006, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: adm@rusfaq.ru, Тел.: +7 (926) 535-23-31
Авторские права | Реклама на портале
Яндекс Rambler's Top100

Subscribe.Ru
Поддержка подписчиков
Другие рассылки этой тематики
Другие рассылки этого автора
Подписан адрес:
Код этой рассылки: comp.soft.prog.phpplus
Архив рассылки
Отписаться Вебом Почтой
Вспомнить пароль

В избранное