soit tu capture la sortie texte de ta boucle via les fonctions ob_*,
rint 'toto en short ';
$out=ob_get_contents();
ob_end_clean();
/* la sortie texte est dans $out */
soit plus simple, la boucle au lieu de faire des echo/print va plutôt concaténer une variable "texte"ob_start();
while(trucmachin) p
$out = '';
while(trucmachin) $out .= 'toto en short ';
/* la sortie texte est dans $out */