PDA

Показать полную графическую версию : php


Страниц : [1] 2

E-mail
13-11-2005, 15:38
никто не помнит функцию, которая переменную может читать как php код?

elfoflorien
13-11-2005, 16:36
E-mail
eval( $string ), по-моему, выполняет то, что ей передается в переменной $string, если я, конечно, вас правильно понял

E-mail
19-11-2005, 21:58
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; ?>

что за ошибка и как ее исправить?

E-mail
20-11-2005, 02:16
eval('$content=$str;');
echo $content;

====

$str берется из базы и содержит ссылки вида $dir/a/f/g

в коде дано определение переменной $dir, но при обработке eval ничего не происходит!



elfoflorien ?

XCodeR
20-11-2005, 12:27
может поможет:

<?php
$string = 'cup';
$name = 'coffee';
$str = 'This is a $string with my $name in it.';
echo $str. "\n";
eval("\$str = \"$str\";");
echo $str. "\n";
?>

XCodeR
20-11-2005, 12:28
вместо $ пишем \$

E-mail
20-11-2005, 15:02
нет! не помогает, по моему это вообще бред,
тут есть ктонибудь кто знает?

XCodeR
20-11-2005, 17:51
E-mail
ага... в оф. мануале всегда один бред пишут...кАнечно....

XCodeR
20-11-2005, 17:54
P.S. если ты будешь писать $ без "\" то PHP воспримет эту запись как переменную и вставит ее содержимое в eval...

E-mail
20-11-2005, 19:50
я читал этот ман, вот МОЙ код:

$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]\";");

Igor_I
20-11-2005, 21:23
Ну а привести, то, чо выводит 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;

E-mail
20-11-2005, 23:31
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>

E-mail
20-11-2005, 23:32
более того теперь появилась ошибка:

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>

E-mail
21-11-2005, 02:15
ну у меня в базе хранится гораздо больший код html содержащий как и полагается яваскрипты ксс и многое другое включаещее в себя одинарные и двойные кавычки

и как подозреваю все дело именно в них они вызывают эту ошибку и их надо конвертировать со слешом, только боюсь многие скрипты от этого перестанут работать..

E-mail
21-11-2005, 02:22
есть другое решение, кроме слеширования содержимого в базе?

Igor_I
21-11-2005, 20:14
А нафига тебе код в базе? Я вот не понимаю ... Смысл?
Я лично всегда думал, что база нужна для хранения данных, которые надо будет отсортировать, вывести по определенному признаку, ну или что-то еще в подобном роде. Но чтобы хранить в базе html-страницы. А ты случайно картинки в базе не хранишь? :)
Эх, "раздолбая" Фаната на тебя нет :)
==========
Или опять, сайт не твой и возится-переделывать не хочется.

E-mail
21-11-2005, 20:42
Igor_I там код html css js vbs + php переменные - пути к директориям например

это делается для того чтобы захочется мне в моей cms поменять скажем структуру сайта - я работаю только мышкой и все никуда лезть в код не надо.

E-mail
21-11-2005, 20:43
Igor_I а кто сказал что картинки в блоб виде хранить хуже чем просто ссылки?




© OSzone.net 2001-2012