eval = зло!
Особенно, если eval'd-код приходит из db ... одной инъекции mysql = полное выполнение php = полный контроль
Скорее используйте некоторые заполнители и замените их (как любая другая хорошая система шаблонов).
Вы можете сохранить это в своей базе данных:
<h1 class="widgetHeader">My Friends</h1>
<div class="widgetRepeater">
<p class="widgetHeader">Random Selection</p>
{%friendstemplate%}
</div>
Затем str_replace заменители с содержанием, которое они должны иметь. В вашем примере я бы добавил подшаблон для каждого друга, например:
<span class="friendImage" style="text-align:center;">
{%username%}
</span>
... которую вы можете зациклить и вставить в {% friendstemplate%}.