в том и вопрос, что сие дает варнинг Warning: sprintf() [function.sprintf]: Too few arguments in
подозреваю, в переменной $str встречается % с каким-либо заполнителем, более точно сказать не могу, т.к. нет отладки, рассматриваю код теоретически(удаленный диагноз).
Вот и подумал, а зачем так то, может автор кода таким образом пытался что-то сказать?