|
|
|
| Вот никак не могу сделать!
Начнём сначала:
Пользователь посылает сообщение:
private [User] privet!
В обработчике должно проверить - с чего начинается строчка (если с private то одно действие, если с чего-то друго другое!). Так вот если там private должно выбрать из строчки то что в скобках - в данном случае User. И после всех этих действий должно удалить из строчки private и [User]. Думаю все объяснил! | |
|
|
|
|
|
|
|
для: Trunk
(10.06.2005 в 19:15)
| | А если их нет, то оставлять текст без изменения? | |
|
|
|
|
|
|
|
для: cheops
(11.06.2005 в 00:22)
| | Да. Объясните пожалуйста на пальцах! А то вообще не могу понять! | |
|
|
|
|
|
|
|
для: TrunK
(11.06.2005 в 11:02)
| | Для этого можно воспользоваться регулярными выражениями
<?php
$text = "private [User] privet!";
$text = preg_replace_callback(
"|^(([^\s]+)[\s]+\[([^\]]+)\])|",
"rep_text",
$text);
// Выводим текст с вырезанным лишним текстом
echo $text;
// Вспомогательная функция обратного вызова
// для вырезания начальной фразы
function rep_text($out)
{
// Выводим имя пользователя
if($out[2] == 'private') echo "Имя пользователя = ".$out[3]."<br>";
return "";
}
?>
|
Функция rep_text является функцией обратного вызова и вызывается функцией preg_replace_callback всякий раз, когда находится соответствие регулярному выражению. При этом найденные соответствия помещаются в массив $out, которые передаётся в качестве параметра rep_text.
$out[0] - полное соответсвие регулярному выражению
$out[1] - то, что заключено в первые круглые скобки в регулярном выражении
$out[2] - то, что заключено во вторые круглые скобки в регулярном выражении
$out[3] - то, что заключено в третьи круглые скобки в регулярном выражении | |
|
|
|