str_ireplace()没有意外删除'针'

时间:2009-11-20 21:06:07

标签: php string security

我正在使用str_ireplace()删除数组中的字符串实例,并且我返回计算出现的次数,但它实际上并没有执行替换。

//replace occurances of insert, update, delete, select
$dmlArray = array('select', 'update', 'delete', 'insert');

str_ireplace($dmlArray,'-- replaced DML -- ',$clean['comment'],$Incount);

$ clean ['comment']将是$ _POST数组。

例如,$clean['comment'] = "SELECT, insert, UPDATE, DEleTe";

最后的字符串应为“ - 替换DML - , - 替换DML - , - 替换DML - , - 替换DML - ”;

但事实并非如此。

2 个答案:

答案 0 :(得分:3)

函数str_ireplace不会更改其参数。它返回结果。以下是您的代码修复:

$clean['comment'] = str_ireplace($dmlArray, '-- replaced -- ', $clean['comment'], $Incount);

答案 1 :(得分:1)

我运行了你的代码,它按预期工作。

echo str_ireplace(
    array('select', 'update', 'delete', 'insert'),
    '-- replaced DML -- ',
    'SELECT, insert, UPDATE, DEleTe',
    $Incount);

以上将输出

-- replaced DML -- , -- replaced DML -- , -- replaced DML -- , -- replaced DML --

请记住,输入字符串不是通过引用传入的,因此您必须使用返回值来获取替换值的字符串。