2011-09-20 42 views
1

我需要一个HTML安全功能,将内容的第一个字母改为图像源。PHP制作第一个字母的图像

所以,如果我的内容将是:"Hello World!“的输出如下: "<img src="/images/letters/H.png" alt="H"/>ello"

我已经试过类似:

$content = '<img src="/images/letters/'.$content[0].'.png" />'.substr($content, 1); 

但我听说这种方式并不安全对于HTML由于像<>字符。

+0

很抱歉,但有点offtopic:你不能使用@字体面? – PeeHaa

+4

为什么这不够“安全”? – Shackrock

+0

你能详细说明你的意思是“安全”吗? – prodigitalson

回答

3
$content = '<img src="/images/letters/'.$content[0].'.png" />'.substr($content, 1); 

会工作得很好,它会ALWA ys被截断为1个字符,所以只要您在该目录中没有名为_.png或其他东西的敏感文件,就没问题。为确保您的网页不会中断:

$alph = "abcdefghijklmnopqrstuvwxyz"; 
if (strpos($alph,$content[0])) { 
    $content = '<img src="/images/letters/'.$content[0].'.png" />'.substr($content, 1); 
} 
0

您是否担心会创建损坏的图像?如何:

$first_letter = $content[0]; 
// A <= $first_letter <= Z 
if(('A' <= $first_letter) && ($first_letter <= 'Z')) { 
    $content = '<img src="/images/letters/' . $first_letter . '.png" />'.substr($content, 1); 
} 
3
$content = preg_replace("/^([a-z])/i","<img src=\"/images/letters/$1.png\" alt=\"$1\" />",$content); 
+0

干得好,我没有想到。 –

+0

感谢队友:)... – Lucas

+0

Btw。内容应该是什么样子?因为它不适合我atm。 – Lucas

相关问题