Просмотр полной версии : Простые вопросы по 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 = "";
}
А для каких целей сей скрипт? Первой мыслю был php бот для ирка, но формат общения сервер-клиент не содержит такой строки. А больше на ум ничего не приходит.
Это он вроде чат делает, с командой /me как ACTION в ирк.
Незнаю, решил ты или нет свою проблему (времени прошло достаточно :)), но на будущее, не используй прегматч для таких простых поиско-замен. Есть менне ресурсоемкий str_replace, ну или substr_replace для большего контроля. Регулярки в пхп зло :)
Эт я так мимоходом, ищу другую тему :)
ээ может не по теме, но тут про прегматч
короче пишу парсер текста,
с прегматчем парсит нормально, но секунд 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
не пойму почему с прегматчем хватало памяти )
Памяти не хватает, забиваешь наверное, весь код покажи
vBulletin® v3.6.3, Copyright ©2000-2024, Якутск-Online. Перевод: zCarot