2013-01-16 71 views
1

我在做什么错了?PHP用新字符串替换第一个字母 - wordpress标题

$title = get_the_title(); 
$firstLetter = $title[0]; 
$title[0] = '<span class = "wrapBlue">' . $firstLetter . '</span>';  

echo $title; // comes out with weird switched around string? 

get_the_title()是一个wordpress函数。

var_dump on $title给出长度的串21.

var_dump on $firstLetter给出包含长度为1

回答

5

如你所知$title[0]指的是第一个字母 - 但你要分配的不是一封信。尝试是这样的:

$title = '<span class = "wrapBlue">' . $firstLetter . '</span>' . substr($title, 1); 
+0

是因为变量$ firstLetter现在是指向第一个char存储器的指针吗? – Jimmyt1988

+0

谢谢,这是工作很好。我可以标记为答案 – Jimmyt1988

+0

ahh我明白..我用一个新的内存数量替换一个字符...所以4个字节的一个字符是超载与无论多字节我的新线是...如果我添加更多的数组的前缀,这可能会做的工作..但你的技术很好! – Jimmyt1988

0

的正确的字符尝试这样的字符串:

$title = get_the_title(); 
$firstLetter = substr($title, 0, 1); 
$title .= '<span class = "wrapBlue">' . $firstLetter . '</span>' . substr($title, 1, strlen($title); 
echo $title; 

Oneliner:

echo '<span class = "wrapBlue">' . substr(get_the_title(), 0, 1) . '</span>' . substr(get_the_title(), 1, strlen(get_the_title()); 
+0

我这样做过,但认为它愚蠢的,如果你真的能做到这一点:http://php.net/manual/en/language.types.string.php#language.types。 string.substr – Jimmyt1988

+0

它确实...字符串是字符数组。它确实回应了正确的字符。你的例子肯定会回显“l” – Jimmyt1988

+0

“这不会打印第一个字母”。 - 错了。它确实打印了第一个字母。 – primetwig

相关问题