$q = "my phrase with special chars like úção!?";
while ($i < strlen($q)) {
echo '<img src="'.$q[$i].'.png" />';
$i++;
}
我也試圖與交換機/情況下,但是當我有字符等C C A A I不能得到的圖像替換,因爲它的多於一個的字符的工作(我是轉換爲HTML實體,然後在案件ccedil尋找,但它是不可能的)替換字母(從短語)與圖像
謝謝
$q = "my phrase with special chars like úção!?";
while ($i < strlen($q)) {
echo '<img src="'.$q[$i].'.png" />';
$i++;
}
我也試圖與交換機/情況下,但是當我有字符等C C A A I不能得到的圖像替換,因爲它的多於一個的字符的工作(我是轉換爲HTML實體,然後在案件ccedil尋找,但它是不可能的)替換字母(從短語)與圖像
謝謝
它不會起作用,因爲口音是不是允許一個文件名。
解決方法:嘗試使用受支持名稱的重音命名圖像文件。例如:é
=>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" />
我會用一個映射如Percent Encoding aka URL encoding因爲文件系統之間的各種錯配的 - 想象該短語包括「../../etc/passwd」 - 和差(或不存在或不同)的unicode實現。
Wiki有一些關於Unicode in HTML;確保正確的編碼提示以Content-Type的形式返回給瀏覽器(例如,不要依賴默認設置),並且FS(以及PHP/Web服務器訪問)允許使用Unicode的名稱和/或「正在講話「相同的編碼(UTF-8 /百分比編碼或其他)。
此外,HTTP/URI不「理解」Unicode,只有ASCII。參見Unicode characters in URLs,其中討論了使用的常用編碼。現代瀏覽器會自動進行編碼(同時仍在位置欄中顯示unicode字形等)。但是,依靠瀏覽器自動執行此編碼意味着未察覺的瀏覽器將無法正常運行。因此,回到第一段。
嗯,我不知道重音是不是支持文件名或只是HTML不會允許加載一個像'ç.png'這樣的名字的圖像 – Cybrix 2010-10-19 20:35:11
根據您的文件系統,它可能都是。 – mattbasta 2010-10-19 23:20:06