Вы абсолютно уверены, что в исходной строке есть какие-нибудь тупые непечатные символы? Попробуйте отладить это:
printf("%s\n", join(':', str_split($img_src)));
И убедитесь, что у вас действительно есть & size = 2 в вашей строке. Если вы видите два последовательных двоеточия, у вас есть что-то вроде \ 0 или какого-то другого персонажа, который портит работы в середине вашей строки.