echo sprintf('%020s',base_convert('0x04bd8', 16, 2));

如果加上0x要把整个十六进制作为字符串传入,或去掉0x作为数字传入