2011-05-30 27 views
-2

新手問題應用功能,以多個變量的PHP

我有以下功能:

function isadult($description) 
{ 
$bad=/*comma separated bad words*/; 
$bad=explode(",",$bad); 
foreach($bad as $key) 
{ 
if(eregi($key,$description)) 
{ 
return true; 
} 
} 
return false; 
} 


if (isadult($description)) exit; 
else 

此功能僅適用於可變$description如果我想也適用此功能變量$title如何修改功能? 和eregi已棄用如何使用preg_match更改eregi?

感謝

+0

只是調用該函數第二次這樣的:?'如果(isadult($描述)|| isadult($標題))...' – Yoshi 2011-05-30 07:42:13

+0

爲什麼使用'$壞=爆炸( 「」,$壞);'當你可以使用'$ bad = array('word1','word2'...)' – k102 2011-05-30 07:51:46

回答

1

可以同時發送的$description$title變量的函數。函數聲明中提供的變量名稱只是指向函數作用域內的變量名稱,而不是函數外部的任何變量名稱,即使它們恰好相同(與您的案例中的$description一樣)。

嘗試if(isadult($title)) {,你會發現它會工作。

外部變量$title被放入函數變量$description,並且將功能範圍之內被稱爲$description


{}之間)的值

由於您在示例中沒有進行任何實際的正則表達式匹配,因此您可以將eregi()替換爲stripos()stristr()或類似的...

if(stripos($description, $key) !== false) { 

你也應該定義你的壞詞列表作爲一個數組向右走,而不必PHP將其轉換。

$bad = array('badword1','badword2','badword3'); 
+0

這些是實例中使用的一些實際詞語,但它們已被編輯掉。 – 2011-05-30 08:01:35

+0

好的謝謝你的迴應 – grigione 2012-02-15 10:49:35