|
|
|
|
|
для: sedek
(17.11.2004 в 11:12)
| | Думаю мученья подходят к концу :)))
В этом скрипте опять нет + в строке
<?php
$voc = preg_replace("|^[^ ] |", "", $voc);
?>
|
Нужно заменить на
<?php
$voc = preg_replace("|^[^ ]+ |", "", $voc);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(16.11.2004 в 22:33)
| | Я уж устал!
всёравно также!
<?
if(preg_match("|^delete$|i", substr($param,0,6)) && preg_match("|^Xolod$|i", $nick))
{
$fd = fopen($filename, "r");
$bufer = fread($fd, filesize($filename));
fclose($fd);
$voc = preg_replace("|^[^ ] |", "", $voc);
$bufer = preg_replace("|[\S]+ = $voc\n|", "", $bufer);
$fd = fopen($filename, "w");
fwrite($fd, $bufer);
fclose($fd);
echo "CHAT.$master> Ник успешно удалён!".$menu[$rnd];
exit();
}
?>
|
http://softtime.ru/forum/read.php?id_forum=1&id_theme=803&page=1 | |
|
|
|
|
|
|
|
для: sedek
(16.11.2004 в 13:23)
| | Тогда все [\d] следует заменить на [\S]. | |
|
|
|
|
|
|
|
для: sedek
(16.11.2004 в 13:23)
| | ёклмн, так у нас id не цифры а набор цифр и букв!? | |
|
|
|
|
|
|
|
для: cheops
(16.11.2004 в 11:58)
| | Пишу delete X
приходит
X
Ник успешно удалён!
а в файле
DFH3J4 = xolod
LK2RD = X | |
|
|
|
|
|
|
|
для: sedek
(16.11.2004 в 11:34)
| | Хм... следует после удаления первого символа посмотреть что осталось в $voc
<?php
$voc = preg_replace("|^[^ ]+ |", "", $voc);
echo $voc."\n";
|
Обращая внимание на все пробелы - просто посмотреть исходный текст страницы (Opera кажется wap понимает - просмотр исходного текста Alt+F3, хотя в принципе этого наверное не нужно - у нас же text/plain). | |
|
|
|
|
|
|
|
для: cheops
(16.11.2004 в 10:44)
| | тоже самое!
Во вложении весь код! | |
|
|
|
|
|
|
|
для: sedek
(16.11.2004 в 10:15)
| | Ага, это я вчера в регулярном выражении ошибся - решил, что простое и можно не проверять :))) Вместо
<?php
$voc = preg_replace("|^[^ ] |", "", $voc);
?>
|
которое удаляет только один символ и следующий за ним пробел, следует писать
<?php
$voc = preg_replace("|^[^ ]+ |", "", $voc);
?>
|
которое уничтожит один или большее число символов и следующий за ним пробел. | |
|
|
|
|
|
|
|
для: cheops
(16.11.2004 в 01:56)
| | Толи я чтото не так делаю толи дело в другом?
Всёравно сообщение о том что удалён выводит а удалять не удаляет!
<?
else if(preg_match("|^delete $|i", substr($param,0,7)) && preg_match("|^Xolod$|i", $nick))
{
$fd = fopen($filename, "r");
$bufer = fread($fd, filesize($filename));
fclose($fd);
$voc = preg_replace("|^[^ ] |", "", $voc);
$bufer = preg_replace("|[\d]+ = $voc\n|", "", $bufer);
$fd = fopen($filename, "w");
fwrite($fd, $bufer);
fclose($fd);
echo "Ник успешно удалён!".$menu[$rnd];
exit();
}?>
|
| |
|
|
|
|
|
|
|
для: sedek
(16.11.2004 в 00:46)
| | Хм... но ведь в строке "DELETE " - только 7 символов... попробуйте в этом блоке семёрки на восьмерки заменить. Или вообще обработать $voc при помощи регулярного выражения - следующий код удаляет из $voc любую команду вначале параметра и пробел следующий за ней
<?php
$voc = preg_replace("|^[^ ] |", "", $voc);
?>
|
В этом случае можно избежать во-первых ошибок связанных с подсчётом числа параметров, во-вторых обрабатывать $voc сразу для всех блоков. К тому же вы говорили в $voc - перевод, чёрт знает как они переводят - может там и число символов другое.... | |
|
|
|
|