Вопрос

$q = "my phrase with special chars like úção!?";

while ($i < strlen($q)) {

echo '<img src="'.$q[$i].'.png" />';

$i++;
}

Я также попробовал с коммутатором / деловым случаем, но когда у меня есть символы, как ç ç â, я не могу получить изображение, замену на работу, поскольку его более чем один символ (я преобразовал в HTML-объекты, а затем поиск в случае CDDIL, но это невозможно)

благодарю вас

Это было полезно?

Решение

Это не будет работать, потому что акценты не допускаются в имени файла.

Обходной путь: попробуйте назвать файл изображения с акцентами с поддерживаемым именем. Например: é => 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" />

Другие советы

Я бы использовал отображение, такое как Процент кодирования aka url кодировки Из-за различных несоответствий между файловой системой - представьте, что фраза включает в себя «../../etc/passwd» - и плохие (или отсутствующие или дифференцирующие) Unicode-реализации.

У Вики есть некоторые о Unicode в HTML; Убедитесь, что правильные подсказки кодирования возвращаются в браузер в типа Content (например, не полагайтесь на по умолчанию) и что ваш FS (и доступ PHP / Web-сервер) разрешать имена с Unicode и / или «разговоры «Тот же кодировка (кодировка UTF-8 / процентов или иным образом).

Кроме того, HTTP / URI не «понимают» Unicode, только ASCII. Видеть Символы Unicode в URL который разговаривает об общих кодировках, используемых. Современные браузеры будут автоматически выполнять кодирование (пока, пока показывая глиф Unicode в панели местоположения и т. Д.). Тем не менее, полагаться на браузере для этого кодирования автоматически означает, что отсутствуют браузеры не будут действовать должным образом. Следовательно, обратно в абзац.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top