2015-02-07 111 views
-2

所以标题可能听起来很混乱,所以这里是一个简单的例子。在HTML中输出PHP变量

这里是php代码(用HTML包装);

echo '<br/><img src="<?php echo $filepath" alt="test" />'; 

这里是代码在源文件中的输出;

<img src="&lt;?php echo $filepath;?&gt;" alt="test"> 

正如你所看到的,php代码被显示而不是执行。这是代码所在的完整文件;

<?php include('_header.php'); ?> 

<?php 
$username = $_SESSION['user_name']; 

$filesyst = array('png', 'jpeg', 'gif', 'jpg'); 
foreach($filesyst as $val) { 
$path = 'avatar/'.$username.'.'.$val; 
if(file_exists($path)) { 
$filepath = 'avatar/'.$username.".".$val; 
} else { 
//default image to be loaded 
} 
} 
?> 

<?php 

// HERE'S THE CODE ---------- 
echo WORDING_YOU_ARE_LOGGED_IN_AS . $_SESSION['user_name'] . "<br />"; 
echo '<br/><img src="<?php echo $filepath;?>" alt="test" />'; 


?> 

<div> 
    <a href="index.php?logout"><?php echo WORDING_LOGOUT; ?></a> 
    <a href="edit.php"><?php echo WORDING_EDIT_USER_DATA; ?></a> 
</div> 

<?php include('_footer.php'); ?> 

有关这里发生了什么的任何想法?任何帮助深表感谢!

+0

你已经在一个PHP标记 - 不要打开一个新的。你需要连接变量。 '回声'foo:'。 $ foo。 ',酒吧:'。 $ bar'。 – h2ooooooo 2015-02-07 15:33:35

+0

您正在使用php标签中的开始和结束标签... – ElefantPhace 2015-02-07 15:33:51

回答

2

你已经在一个php块。试试这个:

<?php 

// HERE'S THE CODE ---------- 
echo WORDING_YOU_ARE_LOGGED_IN_AS . $_SESSION['user_name'] . "<br />"; 
echo '<br/><img src="'.$filepath.'" alt="test" />'; 

?> 
+0

好吧,所以在使用这段代码时,我现在在这个文件中出现一个错误,提示'Undefined variable:filepath'。任何想法如何解决这个问题? – MyNameIsNotSoCool 2015-02-07 15:36:10

+0

您必须在原始来源中替换这些行。但也许你没有分配你的变量。也许你的foreach是从来没有循环过的,因为你的目录中没有图像,你的源代码中有另一个错误 – etalon11 2015-02-07 15:52:32

+0

啊我看到了,我已经设法修复它。谢谢您的帮助! – MyNameIsNotSoCool 2015-02-07 15:58:48

0

你有一些PHP代码封装在字符串中,你是echo -ing。试试这个:

echo '<br/><img src="' . $filepath . '" alt="test" />';