Neo
есть два пути. preg_match и strpos
со вторым все просто:
$p = strpos($string, "_");
$result = substr($string, 0, $p);
регулярное выражение для preg_match будет таким: /([^_]*)/
preg_match("/([^_]*)/", $string, $matches);
$result = $matches[1];
на моих тестах второй вариант работал быстрее... разница была в шестом знаке (то есть в микросекундах)