2014-04-07 98 views
0

我有一些禁止的詞,比存儲在數據庫中。替換頁面中的內容php

我需要做的事情是用一個新的授權字代替它們。

我做類似的東西

//Inclusion du fichier à parser 
require_once GETCASH_BASE_PATH . '/GESTION/pages_html/index.phtml'; // Layout principal 
//Récupération du contenu 
$buffer = ob_get_clean(); 


//Modification du contenu 
$mots_interdits = censure(); 
while ($censure = mysql_fetch_assoc($mots_interdits)): 
    $new = str_replace($censure['mot'], $censure['mot2'], $buffer); 
endwhile; 
//On affiche le nouveau contenu 
echo $new; 

功能坐落在一個其他的文件

/** 
* fonction qui requete la censure 
* @return type 
*/ 
function censure() { 
    $query = "SELECT `mot`, `mot2` FROM `censure`"; 
    $result = mysql_query($query); 
    return $result; 
} 

麻煩的我已經是它僅更換一個禁止的話,我希望它可以代替所有話。

anykind的幫助將不勝感激。

回答

2

你後得到$新值緩衝區每個str_replace,或者你只會得到最後的最後一次審查

while ($censure = mysql_fetch_assoc($mots_interdits)): 
    $new = str_replace($censure['mot'], $censure['mot2'], $buffer); 
    $buffer = $new 
endwhile; 
+0

謝謝,它現在工作正常:) –

-1

製作使用的preg_replace()的替代str_replace()函數,

preg_replace($censure['mot'], $censure['mot2'], $buffer, 1); 
1

您可以用文字的排列也:

$phrase = "You should eat fruits, vegetables, and fiber every day."; 
$healthy = array("fruits", "vegetables", "fiber"); 
$yummy = array("pizza", "beer", "ice cream"); 

$newphrase = str_replace($healthy, $yummy, $phrase); 
1

你的str_replace函數是usin g $ buffer作爲輸入,它不會修改它。您需要確保您的循環迭代,您正在使用當前已修改的字符串作爲str_replace函數的輸入。嘗試是這樣的:

$mots_interdits = censure(); 
while ($censure = mysql_fetch_assoc($mots_interdits)): 
    $buffer = str_replace($censure['mot'], $censure['mot2'], $buffer); 
endwhile; 

//在網站公告樂暴發戶contenu 回聲$緩衝區;