function get_all_positions($str, $needles) {
$result = array();
if(!is_array($needles)) $needles = array($needles);
foreach($needles as $what) {
$pos = 0;
while ( ( $pos = strpos( $str, $what, $pos ) ) !== false )
{
$result[] = $pos;
$pos++;
}
}
asort($result);
return $result;
}
[^(]+[(](.*)[)]
, чтобы зря по строке не проходиться, если она вообще шаблону функции не соответствует. Ну, и символы искать можно не тупым перебором, а функцией strpos
, точно также выделять название функции и её аргументы функцией substr
. Вроде сложностей не должно возникнуть =) GetActiveConnection(...)
и приватную статическую переменную $elephant
, значение которой изначально равно, например, NULL
, а уже в методе GetActiveConnection(...)
пишем что-то вроде этого:public function GetActiveConnection() {
if (is_null($elephant))
{
$elephant = new Elephant(new Version1X('http://localhost:2222'));
$elephant->initialize();
}
return $elephant;
}
Сейчас в игре, когда в ней даже нет игроков, уже хранится миллион записей и по ним идут те или иные выборки (чаще даже не оптимизированные, скорее всего), что всё-таки даёт некоторые задержки и лишнюю нагрузку, когда как можно было бы с ростом числа игроков наращивать эти записи. Но это лично моё мнение, но лишним базу засорять я бы не стал