eval() функцията - проблем

zSix

Registered
В MySQL имам

Код:
echo "dsfsdfsdf";

Когато го изкарвам с eval() функцията, всичко е ок, но когато оставя само dsfsdfsdf, изкарва това:

Parse error: syntax error, unexpected $end in D:\Web\xampp\htdocs\zs\index.php(82) : eval()'d code on line 1

Къде бъркам? Айде Жоре да ти давам още +1 :)
 
Нормално е, защото asdsdfw45efgd не е функция
т.е. eval(); изпълнява само функции
А и като искаш помощ, конкретно от Жоро, прати му ЛС
 
Базикам се, който помогне на него ще дам.

Сега по въпроса:

Ако имам само текст, без код как ще стане проверката?

Сега е така:
Код:
<?php
eval($rp['content']);
?>

$rp['content']
това в MySQL е само dsfdsfds
 
<?php
echo $rp['content'];
?>


P.S.
Ако искаш да е с eval (въпреки, че няма голям смисъл):
eval("echo " . $rp['content']);
 
Добре де ама как да направя така че да разбира кога е с код и кога не.

Демек когато имам в MySQL това:

Код:
echo "asd";

и го искарвам така:

Код:
<?php eval($rp['content']) ?>

няма никакъв проблем, но когато махна echo и го оставя само asd в MySQL, после в кода дава това:

Parse error: syntax error, unexpected $end in D:\Web\xampp\htdocs\zs\index.php(82) : eval()'d code on line 1

Незнам как да напиша тази проверка, че да маха eval(), когато няма код в MySQL. Аз поне немога да си представя как може да стане и от къде ще се разбере че не е PHP код...
 
Приятел това се случва защото eval() работи сам с функции без функции той неможе да разпознае това което изкаш да изведеш без
icon_arrow.gif
echo няма да стане с eval();
 
Код:
function lnonly($rp['content']) {
$eregi = eregi_replace("([A-Z0-9]+)","",$rp['content']);
if(empty($eregi)){
return true;
}
return false;
}

Надявам се схвана идеята на функцията?
 
Имам чувството, че тоя eval() се изполва само за зловреден код, и тъпите "безплатни" темлейти.
Някой има ли обяснение за практическо приложение?
 
Функцията eval() оценява и ако може изпълнява подаденият в нея стринг!Какви са тези глупости, че eval() работи само с функции?
Ти имаш записан стринг в база-данни.При извеждането му, php парсера не го оценява като функцията echo, a като обикновен текст.Затова ти се получава това.
Имаш записан низ:
echo "asasasa";
КОгато го подадеш като параметър на eval() то тази функцията го интерпретира като php код и връща резултата от изпълнението на кода!
 

Back
Горе