2013-01-16 107 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

相關問題