2012-11-03 23 views
3

嗨我有一個strtr()的問題。array_merge&strtr()不起作用

我正在創建一個網站,用戶可以添加他們的表情符號,並通過輸入表情符號的特殊代碼在他們的帖子中調用他們。

這是我做了什麼和它的作品在一定程度上:

//FETCH FROM THE DB 

while ($row = mysql_fetch_array($fetch)) { 
$table[] = array(
$row['shortcuttag1'] => "<img class='x' src='" . $row['tag1smilo'] . "' />", 
$row['shortcuttag2'] => "<img class='x' src='" . $row['tag2smilo'] . "' />", 
$row['shortcuttag3'] => "<img class='x' src='" . $row['tag3smilo'] . "' />", 
$row['shortcuttag4'] => "<img class='x' src='" . $row['tag4smilo'] . "' />", 
$row['shortcuttag5'] => "<img class='x' src='" . $row['tag5smilo'] . "' />" 
); 

這將創建一個用戶上傳的表情多維數組。

當我使用strtr($txt,$table[0]),它與數組[0]和其他人一起工作,但我想改變位於所有子陣列和周圍的表情符號的特殊代碼。

因此,我所做的是把數組合並,像這樣:

$oneDim = call_user_func_array('array_merge',$table); 

我得到了所有SpecialCode =>圖像領域的一個維數組。

但是strtr($txt,$oneDim)停止工作;它沒有顯示任何東西。

我很擔心,因爲我試過幾種不同的方法來合併除call_user_func_array()以外的數組,並且它給出了相同的結果。

也許有人可以幫助我。我將非常感激。

謝謝

+4

爲什麼不首先使用[str_replace](http://php.net/manual/en/function.strstr.php)? – dbf

+3

@Baba'$ table [] = array();'絕對看起來像有一個索引0,還有更多的索引,具體取決於mysql_fetch_array'會返回多少個索引。 – dbf

+0

嘿傢伙! str_replace非常感謝。 – Dave

回答

0

你做錯了。

比方說你有一個客艙

+--------------------------------------+ 
|Tom: Welcome!       | 
|Terry: Hello! :)      | 
+--------------------------------------+-------+ 
|          | SEND | 
---------------------------------------+-------+ 

你需要分析他的字符串輸出被放置在文本框中之前,像這樣:

<?php 
    if(strpos($str, ":)")){ 
     $str = str_replace(':)',"<img src='smiley.png'/>",$str); 
    } 
?> 

當你輸出使用$海峽VAR AJAX,你把他的數據讀回HTML。

不需要你開始做的所有不必要的處理。

如果您需要更多幫助,我會在下班後在我的網站@http://www.code-genius.com/上發佈教程。