在PHP变量中包含PHP代码

时间:2012-01-24 17:02:57

标签: php html sql database variables

如何按原样包含此代码,然后将其上传到我的数据库,在数据库中应该有变量而不是字符串?

CODE:

$username1 = $_SESSION['myusername'];
$sql = mysql_query("SELECT * FROM `members` WHERE `username`='$username1'");
while($row=mysql_fetch_array($sql)) {
  $replytext = '<table cellpadding="0" cellspacing="0" border="0"><tr><td rowspan="10" class="teamimage" style="background-image: url(images/usericons/'.$row['img'].');"><div style="background-image:url(images/teamicons_shadow.png); width: 75px; height: 75px;"></div></td></tr><tr valign="top"><td rowspan="10" style="width:10px;"></td><td style="width:300px;"><table cellpadding="0" cellspacing="0" border="0" style="margin:0px; padding:0px;"><tr><td class="teamname"><b><a href="teams.php?user='.$row['id'].'">'.$row['username'].'</a></b></td></tr><tr><td>Summoner Name: '.$row['summonername'].'</td></tr><tr><td style="border-bottom: 1px solid #888; padding-bottom: 5px;">Clan: '.$row['clan'].'</td></tr><tr><td style="color: #888; padding-top: 3px;">Country: '.$row['country'].'</td></tr><tr><td style="color: #888; padding-top: 3px;">Joined In: '.$row['created'].'</td></tr></table></td><td style="width:10px;"></td><td rowspan="10" style="border: 1px solid #aaa; padding: 3px; width:600px;">'.$replytext.'</td></tr></table>';
}

数据库中的代码

 <table cellpadding="0" cellspacing="0" border="0">
   <tr>
     <td rowspan="10" class="teamimage" 
       style="background-image: url(images/teamicons/default_user.png);">
       <div
         style="background-image:url(images/teamicons_shadow.png); 
           width: 75px; height: 75px;">
       </div>
     </td>
   </tr>
   <tr valign="top">
     <td rowspan="10" style="width:10px;">
     </td>
     <td style="width:300px;">

请注意,我之前解释的代码是$replytext内的代码!

3 个答案:

答案 0 :(得分:1)

如果我理解正确,您希望数据库中的代码为:

<table cellpadding="0" cellspacing="0" border="0"><tr><td rowspan="10" class="teamimage" style="background-image: url(images/teamicons/$row['img'].png)

另一个解决方案是拥有一个不会让php认为它是变量的唯一char。 例如,改变:

$row['img']

 ###row['img']

当您从数据库中提取此代码时,请使用简单的str_replace替换### 符号与$。

当然你需要有一个独特的字符,如果你使用像“a”这样的简单字符,它会将代码中的所有“a”字符改为$ ...这不是一个好主意。

答案 1 :(得分:0)

你可以像这样转义单引号:

$replytext = '<table cellpadding="0" cellspacing="0" border="0"><tr><td rowspan="10" class="teamimage" style="background-image: url(images/usericons/$row[\'img\']);"><div ...

对所有数组键使用\ escape:

 url(images/usericons/$row[\'img\']);

答案 2 :(得分:0)

这有用吗?

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

不确定。参考http://php.net/manual/en/function.eval.php