PHP将首字母作为图像


PHP making first letter an image

我需要一个html安全的函数,它将内容的第一个字母更改为图像源。

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

我试过这样做:

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

但我听说这种方式是不安全的HTML由于字符像<>

$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);
}
$content = preg_replace("/^([a-z])/i","<img src='"/images/letters/$1.png'" alt='"$1'" />",$content);

你担心创建一个破碎的图像吗?如何:

$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); 
}