Jump to content


Photo

variable substitution - Problem


  • Please log in to reply
2 replies to this topic

#1 neds75

neds75
  • New Members
  • Pip
  • Newbie
  • 3 posts

Posted 13 July 2006 - 09:49 AM

Hi programmers,
I have one problem, and don't have idea how to solve it.
Here is very much simplyfied code with which I have problem:
<?php
$variable = "<?php
	\$v1 = \"10\";
	\$v2 = \"50\";
	\$output = \$v1+\$v2;
	@include \"./functions.php\";//This function provde some output too
	echo \$output;
	?>";
$template = "<html>
				<head><title>Test</title></head>
				<body>
				<%variable%>
				</body>
			</html>";

$template = str_replace("<%variable%>",$variable,$template);

echo $template;
?>

The problem is when I run this script in browser I get next html code:
<html>
				<head><title>Test</title></head>
				<body>
				<?php
	$v1 = "10";
	$v2 = "50";
	$output = $v1+$v2;
	@include "./functions.php";
	echo $output;
	?>
				</body>
			</html>
Of course this is totaly expected($variable is string), but I want that all php variables to be substituted with their values when I do echo $template, so I do not want any php code in browser.
I solved this problem by writing $template to file, and then called this file via class that imitate browser(snoopy), and it works as I wanted, but the problem is because I have to write to file, and that may be very slow(this is part of template engine).
SO my question is:
Is it possible to do substitutions somehow in memory, without writing template variable(or $variable) to file and accessing it via browser?

I know this is very specific problem, hope someone will have some ideas.

Thanks,
Ivica

#2 GingerRobot

GingerRobot
  • Staff Alumni
  • Advanced Member
  • 4,086 posts
  • LocationUK

Posted 13 July 2006 - 10:10 AM

Perhaps i am missing the point here with your simplified version, but couldn't you just put the php information that you want that is currently in $variable and put it in a file and include the file?

#3 neds75

neds75
  • New Members
  • Pip
  • Newbie
  • 3 posts

Posted 13 July 2006 - 10:56 AM

That script is part of bigger system, and I have to do it thatway.
ANyway, I found sollution(got it on another forum), and that is eval() function.

Thanks,
Ivica




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users