Pregunta

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

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

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

$i++;
}

i también trató con el interruptor / caso, pero cuando tengo caracteres como C c a a No puedo obtener la imagen reemplazando al trabajo desde su más de un char (i estaba convirtiendo a entidades html y luego buscar en el caso ccedil pero su no es posible)

gracias

¿Fue útil?

Solución

no va a funcionar porque acentos aint permitidos en un nombre de archivo.

Una solución: Pruebe el nombramiento de su archivo de imagen con acentos con un nombre compatible. Ej: é => eacute

Con este código:

<?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++;
}
?>

Este código también apoyan espacio. Es necesario una imagen llamada space.png sin embargo.

Aquí está la salida generada: <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" />

Otros consejos

I usaría un mapeo como Porcentaje de codificación aka URL codificación debido a varias desajustes entre el sistema de archivos - Imagine la expresión incluye "../../etc/passwd." - y pobres (o ausentes o differeing) Unicode implementaciones

Wiki tiene alguna información sobre el Unicode en HTML ; asegúrese de que los consejos codificación correcta se devuelven al navegador en el tipo de contenido (por ejemplo, no se basan en el valor predeterminado) y que sus FS (y el acceso PHP / servidor web) permiten nombres con Unicode y / o son "Hablar "la misma codificación (UTF-8 / ciento codificada, o de otra manera).

Además, HTTP / URI no "comprender" Unicode, solamente ASCII. Ver caracteres Unicode en las URL el que habla de la codificación común utilizado (s). Los navegadores modernos van a hacer la codificación de forma automática (sin dejar de mostrar los glifos Unicode en la barra de direcciones, etc.). Sin embargo, basándose en un navegador para hacer esto automáticamente codificación medios que los navegadores inconscientes no actuará correctamente. Por lo tanto, de vuelta al primer párrafo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top