mus
Новичок
Прошу помочь. Служебные фразы не пашут (тема исправлена)
Прошу помочь. Не могу просечь ошибку в коде с использ. функц. и массив.
Господа - прошу помочь
У меня такая вот проблема - я владею купленным сервисом чатов - мне нужно сделать следующее - замену служебных фраз в чате.
Объясню структуру - есть файл, в который занесли значения служебных фраз, причем этот файл используется всеми чатами, един для всех и, следовательно, служебные фразы тоже едины для всех чатов.
Служебный фразы, это типа посетитель такой-то покидает чат на пять минут.
Для решения этой проблемы я создал для всех чатов дополнительный файл БД ( структура БД сервиса файловая) и занес туда дефолтные значения служебок. Идея такова - просто напросто при создании чата будут использоваться служебные фразы, но если же админ захочет исправить их, то он сможет сделать из админпанели. Не суть важно то, что я тут расписал - но все же для дела это может помочь.
Итак, файл БД для одного, хотя бы, чата я создал, далее мы перебираем значения БД и подставляем заместо дефолтных, с помощью массива.
Не знаю, как Вам идея - может быть и верна - но вот код - прошу простить если обижу братию пхп-эшников =)
Итак, для начала структура файла БД.
и т.д.
Все это вытянуто в одну строчку.
Далее я просто вбил код в новый файл, просто проверить, будет ли работать и положил этот файл в директорию к тому файлу, где лежат служебные фразы. Вот его код (просто файла, назовем его тестовый)
Объясняю, что к чему и зачем.
значит переменная $room отвечает за определние комнаты чата - тоесть она самоопределяема - по идее - в том файле со служебными фразами (назовем его command.php).
Далее, переменная komu["nik"] = "mus";
это имя пользователя, оно тоже определится само.
Далее цикл с перебором файла БД, структура которого расписана выше, затем мы находим в файле БД слово $komu и заменяем на $komu["nik"] - делаем мы это затем, чтобы админ, при изменении служеьных фраз мог крутить вертеть именем пользователя, пример:
посетитель mus покидает чат навсегда
или
mus, это тот, что посетитель, удаляется из чата на пять минут...
Я думаю, тут тоже все ясно...
Так-с, ну а далее массив str, значениями которого будут фразы, которые мы извлекли из файлы БД....
И просто так вывод сообщения - вуаля - работает...
Вот и бы и дальше работало - ан нет...
Решил я все это дело вставить в нормульный файл, тот, который command.php - смотрим два варианта кода файла - первый - нормальный, второй - мною исправленный (как оказалось - гаженный)
нормальный вариант:
НЕнормальный вариант кода:
На выходе ничего нет =(
Пустая строка да и только - я вот думаю, может быть я что-то не так делаю, в плане идеи? А может в плане правильности кода?
Помогите
(Информация для админа - текст стал меньше в 4 раза =))
Прошу помочь. Не могу просечь ошибку в коде с использ. функц. и массив.
Господа - прошу помочь
У меня такая вот проблема - я владею купленным сервисом чатов - мне нужно сделать следующее - замену служебных фраз в чате.
Объясню структуру - есть файл, в который занесли значения служебных фраз, причем этот файл используется всеми чатами, един для всех и, следовательно, служебные фразы тоже едины для всех чатов.
Служебный фразы, это типа посетитель такой-то покидает чат на пять минут.
Для решения этой проблемы я создал для всех чатов дополнительный файл БД ( структура БД сервиса файловая) и занес туда дефолтные значения служебок. Идея такова - просто напросто при создании чата будут использоваться служебные фразы, но если же админ захочет исправить их, то он сможет сделать из админпанели. Не суть важно то, что я тут расписал - но все же для дела это может помочь.
Итак, файл БД для одного, хотя бы, чата я создал, далее мы перебираем значения БД и подставляем заместо дефолтных, с помощью массива.
Не знаю, как Вам идея - может быть и верна - но вот код - прошу простить если обижу братию пхп-эшников =)
Итак, для начала структура файла БД.
PHP:
$komu отходит на минуты две^$komu о-па, уже в чате, приколи...^не могу его достать^
Все это вытянуто в одну строчку.
Далее я просто вбил код в новый файл, просто проверить, будет ли работать и положил этот файл в директорию к тому файлу, где лежат служебные фразы. Вот его код (просто файла, назовем его тестовый)
PHP:
<?php
$room = "main";
$komu["nik"] = "mus";
$data = file("../$room/___kbvhd1fd8r3_cjfge/sfraz.ch"); // открываем файл БД
for ($i=0; $i<count($data); $i++) //перебираю
{
$data[$i] = str_replace("\$komu",$komu[nik],$data[$i]);
$str = explode("^",$data[$i]);
}
echo "$str[2]";
?>
значит переменная $room отвечает за определние комнаты чата - тоесть она самоопределяема - по идее - в том файле со служебными фразами (назовем его command.php).
Далее, переменная komu["nik"] = "mus";
это имя пользователя, оно тоже определится само.
Далее цикл с перебором файла БД, структура которого расписана выше, затем мы находим в файле БД слово $komu и заменяем на $komu["nik"] - делаем мы это затем, чтобы админ, при изменении служеьных фраз мог крутить вертеть именем пользователя, пример:
посетитель mus покидает чат навсегда
или
mus, это тот, что посетитель, удаляется из чата на пять минут...
Я думаю, тут тоже все ясно...
Так-с, ну а далее массив str, значениями которого будут фразы, которые мы извлекли из файлы БД....
И просто так вывод сообщения - вуаля - работает...
Вот и бы и дальше работало - ан нет...
Решил я все это дело вставить в нормульный файл, тот, который command.php - смотрим два варианта кода файла - первый - нормальный, второй - мною исправленный (как оказалось - гаженный)
нормальный вариант:
PHP:
<?
function command($tip,$komu_nik)
{
define("nik","nik"); // ниже пропущена часть кода...
.
.
.
global $room;
global $uid; // ниже пропущена часть кода
.
.
if ($arr_right[uid]=="")
{
to_chat("Не могу его достать","only1",$hto[nik],$hto);
}
PHP:
<?
#здесь ничего не меняется - изменения начинаются ниже
$data = file($DOCUMENT_ROOT."/main/___kbvhd1fd8r3_cjfge/sfraz.ch"); // открываем файл БД, ПО ИДЕЕ, ВМЕСТО MAIN ЗДЕСЬ ДОЛЖНО БЫТЬ $room НО Я ПОСТАВИЛ MAIN - ВСЕ РАВНО ТЕСТИЛ НА ЭТОМ ЧАТЕ (не думайте, я и рум ставил - но не пахало)
for ($i=0; $i<count($data); $i++) //перебираю
{
$data[$i] = str_replace("\$komu",$komu[nik],$data[$i]);
$str = explode("^",$data[$i]);
}
if ($arr_right[uid]=="")
{
to_chat("$str[2]","only1",$hto[nik],$hto);
}
Пустая строка да и только - я вот думаю, может быть я что-то не так делаю, в плане идеи? А может в плане правильности кода?
Помогите

(Информация для админа - текст стал меньше в 4 раза =))