Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.118.144.69] |
|
Сообщ.
#1
,
|
|
|
ПЛИИЗ!!! Помогите!
Скриптю чат... Записываю значит в файл сообщение, (поставил фильтр на ХТМЛ, поэтому юзаю "\n") какая функция отвечает за чтение из файла по строчно? Или каким макаром это можно сделать??? Я уже месяц голову над этим ломаю, млин =((( ИСХОДНИКИ: Запись в файл: <?php .... ... .... .. //Если пользователь не забанен If ($ban == 0) { //Счётчик сообщений $query = "SELECT Counter FROM chat"; $result = mysql_query($query); $count = mysql_result($result, 0, "Counter"); //Если кол-во сообщений привысило 60 или равно 60-ти, то очистить файл перед записью If ($count >= 60) { $query = "UPDATE chat SET Counter=0"; mysql_query($query); $count = 0; $fp = fopen("msg.txt", "w+"); } //Или же если в файле сообщений меньше 60-ти, прочесть из файла сообщение и записать в файл обычным методом. Else { //Открытие файла сообщений $fpr = fopen("msg.txt", "r"); while (! feof($fpr)) { $s = fgets($fpr); } fclose($fpr); $fp = fopen("msg.txt","a"); } //Увеличить счётчик кол-ва сообщений на 1 $count++; $query_up_count = "UPDATE chat SET Counter='$count'"; mysql_query($query_up_count); //Добавка сообщения в файл $message = ">[".$time_hour.":".$time_minutes.":".$time_seconds."] ".$login.": ".$info."\n"; fputs($fp, $message); fclose($fp); }//Ban //Возврат пользователя к вводу сообщений header("Location: chat.php"); ?> Вывод сообщений: <?php //Открыть файл для чтения $fp = fopen("msg.txt", "r"); while (! feof($fp)) { $message = fgets($fp); } //Фильтрация HTML и JavaScript тэгов $message = nl2br(htmlspecialchars($message)); fclose($fp); echo ($message); ?> Помогите ПОЖАЛУЙСТА!!! |
Сообщ.
#2
,
|
|
|
А если так?
<? $file=file("blablabla.dat"); for ($i=0;$i<count($file);$i++) echo $file[$i]."<br>"; ?> |
Сообщ.
#3
,
|
|
|
2Mastillor:
УРА!!! ЗАРАБОТАЛО!!! Хы-хы! Ещё раз УРА!!! Спасибо! Спасибо! Спасибо!!!! +))) Блин, и я вот над этой фигнёй месяц потел... фуф.... =((( Тупая же у меня бошка всё таки =( ЕЩЁ РАЗ СПАСИБКИ! БИГ РЕСПЕКТ!!! |
Сообщ.
#4
,
|
|
|
Слушай... А как теперь тогда фильтр ХТМЛ тэгов вставить???
|
Сообщ.
#5
,
|
|
|
Splanger,
ты можешь не использовать Капс Лок , и создать новую тему по поводу ХТМЛ ( а перелд етим воспользоватся поиском ) |
Сообщ.
#6
,
|
|
|
Splanger, за чтение файла построчно отвечает функция fgets() или fread(). Я только не понимаю, почему у тебя строки читаются в пустоту? Тебе разве работать с ними не нужно?
$fp = fopen('file.dat', 'r'); while(!feof($fp)) { $line = fgets($fp); // Над $line нужно какие-то действия производить, иначе мы просто пропускаем строку } fclose($fp); Или если ты читаешь все сообщения в одну переменную, используешь оператор .= $full_text = ''; $fp = fopen('file.dat', 'r'); while(!feof($fp)) { $full_text .= fgets($fp); } fclose($fp); echo $full_text; Еще советую использовать \r\n вместо \n, чтобы не было курьезов с Windows. Куда тебе нужно фильтр тэгов вставить? А вообще, не помешало бы обзавестить какой-нибудь книгой по PHP или мануалом. |
Сообщ.
#7
,
|
|
|
Цитата Splanger, ты можешь не использовать Капс Лок , и создать новую тему по поводу ХТМЛ ( а перелд етим воспользоватся поиском ) Я и не использую капс лок... Я поиском пользовался, ничего так и не нашёл Добавлено в : Цитата почему у тебя строки читаются в пустоту Тоесть? Добавлено в : Цитата Тебе разве работать с ними не нужно Мне нужно короче что бы фильтровались все ХТМЛ тэги, но выводилось всё по строчкам... Добавлено в : Цитата Куда тебе нужно фильтр тэгов вставить? При выводе сообщений мне фильтр нужно поставить, что бы юзер не мог использовать хмтл тэги. |
Сообщ.
#8
,
|
|
|
Вывод Сообщений:
<? $fp = fopen('msg.txt', 'r'); while(!feof($fp)) { $line = fgets($fp); echo nl2br(htmlspecialchars($line)); } fclose($fp); ?> |
Сообщ.
#9
,
|
|
|
О, Всё работает!
Тенкс! |
Сообщ.
#10
,
|
|
|
Ещё вопрос:
Каким образом при выводе на сообщения на экран я могу заменять некоторые символы картинками? |
Сообщ.
#11
,
|
|
|
Можно на РНР, а можно и на JS.
PHP: <? $smiles = array( ':)' => '<img src="1.gif" />', ';)' => '<img src="2.gif" />', ':\'(' => '<img src="3.gif" />', ); $message = strtr($message, $smiles); ?> JS: function strtr(str, what, _with) { var temp = ''; if (typeof(_with) != 'undefined') { var t = what; var what = new Array(); what[t] = _with; }//if for (var _what in what) { temp = ''; for (var i = 0; i < str.length; i++) { var sub = str.substr(i, _what.length); if (typeof(what[sub]) != 'undefined') { temp += what[sub]; i += _what.length - 1; }//if else { temp += str.charAt(i); }//else }//for str = temp; }//for return temp; }//function var smiles = new Array(); smiles[':)'] = '<img src="1.gif" />'; smiles[';)'] = '<img src="2.gif" />'; smiles[':\'('] = '<img src="3.gif" />'; var message = 'Hello:) How are you;)'; message = strtr(message, smiles); |
Сообщ.
#12
,
|
|
|
Спасибо за предоставленую помощь,
Премного благодарен. А насчёт скрипта смайликов на PHP... Что делает функция : strtr($message, $smiles); Можно по подробнее пожалуйста? Хотелось бы изьять также полезную информацию себе на будущее из пхп скриптов. |
Сообщ.
#13
,
|
|
|
Функция strtr() переводит одни символы в другие. Вообще-то, у нее три аргумента, но Rom@nych предпочел воспользоваться ассоциативным массивом. Таким образом, она заменяет в строке $message все иконки смайликов на тэги img.
|
Сообщ.
#14
,
|
|
|
Splanger,
а ето что ? Цитата Splanger, 16.08.04, 00:02 УРА!!! ЗАРАБОТАЛО!! Цитата Splanger, 16.08.04, 00:02 ЕЩЁ РАЗ СПАСИБКИ! БИГ РЕСПЕКТ!!! |
Сообщ.
#15
,
|
|
|
Цитата Splanger, а ето что ? Ничего особого =)) Цитата Функция strtr() переводит одни символы в другие. Вообще-то, у нее три аргумента, но Rom@nych предпочел воспользоваться ассоциативным массивом. Таким образом, она заменяет в строке $message все иконки смайликов на тэги img. TnX! |