PDA

Просмотр полной версии : Простые вопросы по PHP


Freakazoitt
14.01.2010, 19:03
Есть вот такой кусок кода:

Код:

$user=$row['nick'];
if (preg_match("/me", $msg, $msg_1))
{
$msg=str_replace ("/me","<i>".$user."",$msg);
$user="";
}

он не работает на второй строчке

надо: Если строка $msg начинается на "/me" то выполнить действие ниже

Freakazoitt
14.01.2010, 20:20
уже сам сделал


$submsg = substr($msg, 0, 3);
if($submsg == '/me'){
$msg = str_replace ("/me", "<i>{$user}", $msg);
$user = "";
}

bt_
16.01.2010, 03:12
А для каких целей сей скрипт? Первой мыслю был php бот для ирка, но формат общения сервер-клиент не содержит такой строки. А больше на ум ничего не приходит.

Ktulu
17.01.2010, 14:28
Это он вроде чат делает, с командой /me как ACTION в ирк.

bt_
11.07.2010, 05:23
Незнаю, решил ты или нет свою проблему (времени прошло достаточно :)), но на будущее, не используй прегматч для таких простых поиско-замен. Есть менне ресурсоемкий str_replace, ну или substr_replace для большего контроля. Регулярки в пхп зло :)
Эт я так мимоходом, ищу другую тему :)

Altos
12.07.2010, 21:55
ээ может не по теме, но тут про прегматч
короче пишу парсер текста,
с прегматчем парсит нормально, но секунд 6 ) ,
заменил почти все простые прегматчи типа:
preg_match ( '/[\s\:]/', $char )
на такую фигню:
$char == ' ' || $char == ':'
стало быстрее, 4 секунды, но теперь выскакивает :
Fatal error: Allowed memory size of 25165824 bytes exhausted (tried to allocate 524288 bytes) in C:\AppServ\www\stat_parser.php on line 80

не пойму почему с прегматчем хватало памяти )

Ktulu
13.07.2010, 13:16
Памяти не хватает, забиваешь наверное, весь код покажи