Показать полную графическую версию : php
никто не помнит функцию, которая переменную может читать как php код?
elfoflorien
13-11-2005, 16:36
E-mail
eval( $string ), по-моему, выполняет то, что ей передается в переменной $string, если я, конечно, вас правильно понял
Parse error: parse error, unexpected T_STRING in C:\localhost\index.php(267) : eval()'d code on line 108
у меня код:
$content=eval($str);
$str - это значение поля таблицы, там находится html код и текст, одинарные и двойные кавычки не прослешованы, а так же php код вида <?php echo $ddr; ?>
что за ошибка и как ее исправить?
eval('$content=$str;');
echo $content;
====
$str берется из базы и содержит ссылки вида $dir/a/f/g
в коде дано определение переменной $dir, но при обработке eval ничего не происходит!
elfoflorien ?
может поможет:
<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>
нет! не помогает, по моему это вообще бред,
тут есть ктонибудь кто знает?
E-mail
ага... в оф. мануале всегда один бред пишут...кАнечно....
P.S. если ты будешь писать $ без "\" то PHP воспримет эту запись как переменную и вставит ее содержимое в eval...
я читал этот ман, вот МОЙ код:
$dir="a/s/d/f/g";
mysql_connect($db['host'],$db['user'],$db['pass']);
mysql_select_db($db['name']);
$row=mysql_fetch_row(mysql_query($query));
eval('$content=$row[0];');
echo $content;
=====================
в базе хранится:
<a href=$dir/image/f.html>
=====================
переменная $row[0] достает это из базы и я хочу сделать так чтобы вместо переменной $dir писалось предопределенное ей в скрипте значение.
решение есть?
vadimiron
20-11-2005, 20:57
eval('$content=$row[0];');
В мануале же по-другому стоит ;)
eval("\$content=\"$row[0]\";");
Ну а привести, то, чо выводит echo ?
vadimiron
Да уж бывает. :) Ну да ладно. :)
Найди отличия.
Ман
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
Твое.
$dir="a/s/d/f/g";
eval('$content=$row[0];');
echo $content;
echo выводит:
<a href=$dir/image/f.html>
т.е. то же самое что и хранится в базе.
с обратными слешами работает точно также, я же уже писал.
к слову говоря если использовать одинарные ковычки можно не слешировать эскейп подобные символы, насколько помню.
мой код:
$dir="опываопывопаоывпаывппаывпывпа";
mysql_connect($db['host'],$db['user'],$db['pass']);
unset($db['host']);
unset($db['user']);
unset($db['pass']);
mysql_select_db($db['name']);
unset($db['name']);
$row=mysql_fetch_row(mysql_query("SELECT FROM WHERE "));
$str=$row[0];
eval("\$str = \"$str\";");
echo $str;
выдает:
<a href=$dir/image/f.html>
более того теперь появилась ошибка:
Parse error: parse error, unexpected T_STRING in C:\localhost\test.php(52) : eval()'d code on line 108
vadimiron
21-11-2005, 00:15
echo выводит:
<a href=$dir/image/f.html>
т.е. то же самое что и хранится в базе.
Честно, у меня выводится то, что надо. :( не знаю, в чём проблема
Вот полный код
$dir="a/s/d/f/g";
$row[0]="<a href=$dir/image/f.html>";
eval("\$content=\"$row[0]\";");
echo $content;
Вывод:
<a href=a/s/d/f/g/image/f.html>
ну у меня в базе хранится гораздо больший код html содержащий как и полагается яваскрипты ксс и многое другое включаещее в себя одинарные и двойные кавычки
и как подозреваю все дело именно в них они вызывают эту ошибку и их надо конвертировать со слешом, только боюсь многие скрипты от этого перестанут работать..
есть другое решение, кроме слеширования содержимого в базе?
А нафига тебе код в базе? Я вот не понимаю ... Смысл?
Я лично всегда думал, что база нужна для хранения данных, которые надо будет отсортировать, вывести по определенному признаку, ну или что-то еще в подобном роде. Но чтобы хранить в базе html-страницы. А ты случайно картинки в базе не хранишь? :)
Эх, "раздолбая" Фаната на тебя нет :)
==========
Или опять, сайт не твой и возится-переделывать не хочется.
Igor_I там код html css js vbs + php переменные - пути к директориям например
это делается для того чтобы захочется мне в моей cms поменять скажем структуру сайта - я работаю только мышкой и все никуда лезть в код не надо.
Igor_I а кто сказал что картинки в блоб виде хранить хуже чем просто ссылки?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.