2015-10-21 5 views
-1
$answra[$j] = '$qry['.$answers[$j].']'; 
eval("echo stripSlashes($answra[$j]); "); 

Я пробовал разные методы, но я не могу получить eval(), чтобы вывести вывод. Я следовал за соответствующим сообщением и получил это, но он просто не работал.Использование функции внутри eval() в php

$str = "echo (stripSlashes($answra[$j])) ;" ; 
eval("?> $str <?php "); 

Простая альтернатива?

+1

Я понятия не имею, что вы связываете, чтобы достичь здесь. Зачем вам нужно использовать 'eval'? Почему не 'echo stripSlashes ($ answra [$ j]);' делать то, что вы хотите? – andrewsi

+0

пишите [stripslashes] (http://php.net/manual/de/function.stripslashes.php) в нижнем регистре, может быть? –

+2

@TanuelMategi - имена функций в PHP нечувствительны к регистру, я считаю, что – andrewsi

ответ

1

(я предполагаю, что у вас есть причины для использования Eval, который обескураженный, в любом случае, позвольте мне дать вам мое решение)

Хорошо позволяет нам это неправильно пример:

$string = "asdfg"; 
eval("echo stripSlashes($string); "); 

это не будет работать, так как используется строка в

eval("echo stripSlashes($string); "); 

результатов

echo stripSlashes(asdfg); 

вы можете видеть asdfg больше не настоящую строку.

то, что вам нужно сделать, это, чтобы избежать переменной, как это:

eval("echo stripSlashes(\$string); "); 

так что ваш переводчик будет знать, не принимать во внимание переменную.

TL; DR:

этот обратный слеш должен сделать трюк:

$answra[$j] = '$qry['.$answers[$j].']'; 
eval("echo stripSlashes(\$answra[$j]); "); 
0

Используйте одинарные кавычки вместо двойных кавычек, чтобы предотвратить переменную из расширяется, когда он включен в строку. Он будет расширен до eval, когда он разбирает аргумент.

eval('echo stripSlashes($answra[$j]); '); 

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

  • Нет связанных вопросов^_^