Это не сработает, потому что в имени файла не допускаются акценты.
Обходной путь: попробуйте назвать файл изображения с акцентами с поддерживаемым именем. Например: é
=> eacute
С этим кодом:
<?php
$q = "my phrase with special chars like úção!?";
while ($i < strlen($q)) {
if ($q[$i] == " ")
{
echo '<img src="space.png" />';
} else if ($q[$i] == "?") {
echo '<img src="questionmark.png" />';
} else {
echo '<img src="'.str_replace(array("&", ";"), "", htmlentities($q[$i])).'.png" />';
}
$i++;
}
?>
Этот код также поддерживает пробел. Вам нужно изображение с именем space.png.
Вот сгенерированный вывод:
<img src="m.png" /><img src="y.png" /><img src="space.png" /><img src="p.png" /><img src="h.png" /><img src="r.png" /><img src="a.png" /><img src="s.png" /><img src="e.png" /><img src="space.png" /><img src="w.png" /><img src="i.png" /><img src="t.png" /><img src="h.png" /><img src="space.png" /><img src="s.png" /><img src="p.png" /><img src="e.png" /><img src="c.png" /><img src="i.png" /><img src="a.png" /><img src="l.png" /><img src="space.png" /><img src="c.png" /><img src="h.png" /><img src="a.png" /><img src="r.png" /><img src="s.png" /><img src="space.png" /><img src="l.png" /><img src="i.png" /><img src="k.png" /><img src="e.png" /><img src="space.png" /><img src="uacute.png" /><img src="ccedil.png" /><img src="atilde.png" /><img src="o.png" /><img src="!.png" /><img src="questionmark.png" />