2013-06-16 3 views
-4

Я не понимаю, почему eval не работает над этой строкой.

Это работает:

eval(base64_decode('cGhwaW5mbygpOw==')); 

Это не:

$test= "base64_decode('cGhwaW5mbygpOw==');"; 
eval($test); 

ответ

1

Порядок действий убивает вас. два примера не похожи друг на друга.

eval(base64_decode('cGhwaW5mbygpOw==')); 

больше похож

$test = base64_decode('cGhwaW5mbygpOw=='); 
eval($test); 

однако второй образец имеет base64_decode разобрать строку 'phpinfo();' внутри eval. и ничего не делает с этими строковыми записями.

+0

Я не понимаю, что вы имеете в виду. Если я сохраняю eval ($ test) во второй переменной и затем повторяю эту переменную. ничего нет. – user1166981

+0

eval возвращает null, если строка, которая использовалась в eval, не используется. – WhyteWolf

+0

Что вы подразумеваете под обращением? – user1166981

0
$test= base64_decode('cGhwaW5mbygpOw=='); 
eval($test); 

Это будет.

+0

Я не думаю, что это отвечает на вопрос. –

+0

Нет, мне нужно назначить переменную как строку .... – user1166981

+0

Почему? Вам нужно? Также вам следует избегать использования eval. – transilvlad

Смежные вопросы