使用PHP函数更改文本

使用PHP函数更改文本,php,Php,我有一个包含文本区域的表单 当用户输入如下代码时: chr(rand(97,122)) chr(rand(97,122)) chr(rand(98,122)) chr(rand(99,122)) rand()中的数字可以是任何数字-并验证表单 我想将此文本转换为php函数rand()和chr()的结果 我尝试使用eval(),但对我无效。您可以使用而不是邪恶()来执行此操作。只需匹配函数调用中的数字并返回随机字符,例如 $output = preg_replace_callback("/\s

我有一个包含文本区域的表单

当用户输入如下代码时:

chr(rand(97,122))
chr(rand(97,122))
chr(rand(98,122))
chr(rand(99,122)) 
rand()
中的数字可以是任何数字-并验证表单

我想将此文本转换为php函数
rand()
chr()
的结果

我尝试使用
eval()
,但对我无效。

您可以使用而不是邪恶()来执行此操作。只需匹配函数调用中的数字并返回随机字符,例如

$output = preg_replace_callback("/\s*chr\(rand\((\d+),(\d+)\)\)\s*/", function($m){
    return chr(rand($m[1], $m[2])); 
}, $input);

echo $output;

如果用户输入的代码类似于
readfile('/etc/passwd')
请注意
chr(rand(97122))chr(rand(97122)chr(rand(98122))chr(rand(99122))
不是有效的PHP代码,所以可能这就是eval不工作的原因。我只想转换rand和chr,并尝试添加“.”如果答案是eval(),那么你几乎肯定问错了问题拉斯马斯·勒多夫,PHP的BDFL