PHP制作第一个字母的图像

时间:2011-09-20 22:02:29

标签: php image letters

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

因此,如果我的内容为:"Hello World!,则输出结果如下:  "<img src="/images/letters/H.png" alt="H"/>ello"

我尝试过类似的事情:

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

但由于<>这样的字符,我听说这种方法对HTML不安全。

3 个答案:

答案 0 :(得分:3)

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

将正常工作,它将永远被截断为1个字符,因此只要您在该目录中没有名为_.png的敏感文件或其他内容,您就可以了。确保您的网页不会中断:

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

答案 1 :(得分:3)

$content = preg_replace("/^([a-z])/i","<img src=\"/images/letters/$1.png\" alt=\"$1\" />",$content);

答案 2 :(得分: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); 
}