Не работает функция eval()

Статус
В этой теме нельзя размещать новые ответы.

dandandan

Мой дом здесь!
Регистрация
7 Авг 2008
Сообщения
1.036
Реакции
292
подскажи плиз по eval()

Код:
if (file_exists('tmp.html')){    
    $txt=file_get_contents('tmp.html');    
    eval("\$txt =\"$txt\";");    
    echo $txt;
}
пробовал сделать так:
Код:
if (file_exists('tmp.html')){	
	$txt=' ?>'.file_get_contents('tmp.html').'<?php ';
       eval("\$txt =\"$txt\";");	
	echo $txt;
}
в итоге выводит текст который в файле html без интерпритации. Что делаю не так?

Если этот html код вывожу в виде:

echo 'код который в файле tmp.html прикручен к концу php страницы, то все переменные нормально заменяются. Т.е. глюков с именами переменных точно нет.
 
Покажи содержимое tmp.html
 
подскажи плиз по eval()

Код:
if (file_exists('tmp.html')){    
    $txt=file_get_contents('tmp.html');    
    eval("\$txt =\"$txt\";");    
    echo $txt;
}
пробовал сделать так:
Код:
if (file_exists('tmp.html')){    
    $txt=' ?>'.file_get_contents('tmp.html').'<?php ';
       eval("\$txt =\"$txt\";");    
    echo $txt;
}
в итоге выводит текст который в файле html без интерпритации. Что делаю не так?

Если этот html код вывожу в виде:

Всё правильно. Ведь eval("\$txt =\"$txt\";"); АНАЛОГИЧНО $txt="$txt"; !!!
Надо

Код:
if (file_exists('tmp.html')){    
    $txt=file_get_contents('tmp.html');    
    eval($txt);    
}
 
Всё правильно. Ведь eval("\$txt =\"$txt\";"); АНАЛОГИЧНО $txt="$txt"; !!!
Надо
Код:
if (file_exists('tmp.html')){    
    $txt=file_get_contents('tmp.html');    
    eval($txt);    
}
Не помогло.

Вот пример кода:
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta name="description" content="'.$main['m1'].'" />
<meta name="keywords" content="'.$main['m2'].'" />
<title>'.$mt['z_h'].'</title>
</head>
<body>
'.$m['z'].'
</body>
</html>
 
если применять к последнему куску хтмеля ТС, то код будет выглядеть так:
PHP:
<?php
	$main['m1'] = '123';
	$main['m2'] = 'zxc';
	$mt['z_h'] = 'qwerty';
	$m['z'] = 'asdf';
	eval('?><? echo \''. file_get_contents('tmp.html') . '\';');

что пытался сделать ТС в первом посте представить крайне сложно..
 
если выводишь html-код в пхп, надо двойные кавычки экранировать слэшами.
 
а причем тут Eval(); ?? тут проблема у автора что файл tmp.htm кривой.

должно быть
tmp.htm
PHP:
<!DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Transitional//EN 

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd>
<html xmlns=http://www.w3.org/1999/xhtml>
<head>
<meta http-equiv=Content-Type content=text/html; charset=windows-1251 />
<meta name=description content=$main[m1] />
<meta name=keywords content=$main[m2] />
<title>$mt[z_h]</title>
</head>
<body>
$m[z]
</body>
</html>

А вот Php которая его обрабатывает;
PHP:
<?
$main['m1']='test';
$main['m2']='test2';
$mt['z_h']='some one';
$m['z']="final";

if (file_exists('tmp.htm')){    
    $txt=file_get_contents("tmp.htm");    
    eval("\$txt =\"$txt\";");    
 echo $txt;   
}

?>
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху