在特定部分HTML(ECHO)代码之后定义PHP变量

时间:2011-10-09 19:04:36

标签: php variables echo

目前我正忙着使用HTML,PHP和Javascript!我正在尝试一次学习这三种脚本语言,但有些问题我自己无法解决。

我的问题是:我编写了一个PHP文件。它中的代码看起来像这样

<?php
$variable1=300;
$variable2=600;
and so on

echo'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
blabla
else{if
(blah.blah==(something)){**FUNCTION()**;}}
</body>
</html>'
?>

现在事情是,我想直接插入 FUNCTION()所声明的部分,这些内容如下:

$phpvar=20;

我如何插入我的PHP变量而不会出现任何错误?!

如果有人可以帮助我,

真的很高兴,

提前致谢

修改

问题是我使用了代码“ECHO blahblah”,所以你的想法不会真正帮助我。我已经编辑了我的来源以便使用你的建议,但我仍然无法理解......

现在我的代码如下:

<?php
$variable1=300;
$variable2=600;
and so on
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
blah

<div id="blah" style="margin:0;padding:0;position:absolute;left:' . $variable1 . 'px;top:' . $variable2 . 'px;width:148px;height:57px;text-align:left;z-index:3;">
</body>
</html>

如何插入变量以使其真正起作用?不起作用..

3 个答案:

答案 0 :(得分:0)

完全确定您的代码正在做什么,但是这个呢?

<?php

$variable1 = 300;
$variable2 = 600;

$blah = 'something';

$phpvar = 'I am here';

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<?php

if ($phpvar != '') {
?>
<script>
var phpvar = "<?php echo $phpvar?>";
</script>
<?php
}

?>
</head>
<body>
<p>Hello world!</p>
<?php
if ($blah == 'something'){
?>
<script>
function doStuff(){
    alert('Stuff done.');
}
</script>
<?php
}
?>
<p>After stuff</p>
<?php
if ($blah != 'something'){
?>
<script>
function noStuff();
</script>
<?php
} else {
?>
<p>No stuff done this time.</p>
<?php
}
?>
</body>
</html>

http://codepad.org/4hbVRJID

将输出:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script>
var phpvar = "I am here";
</script>
</head>
<body>
<p>Hello world!</p>
<script>
function doStuff(){
    alert('Stuff done.');
}
</script>
<p>After stuff</p>
<p>No stuff done this time.</p>
</body>
</html>

注意我如何使用PHP标记(<?php ?>)在标记内插入PHP。这通常在使用PHP作为模板引擎时完成(在单独完成的任何逻辑之上)。这样您就不必处理echo,但有时候很难阅读。

答案 1 :(得分:0)

我的第一个建议是改变将数据输出到浏览器的方式,即

<?php
$variable1=300;
$variable2=600;
and so on
//instead of doing an echo and echo-ing all the stuff out you just temporarily end your code
?>

然后在这里输出你的HTML和你的JavaScript代码,当你需要将它输入到JavaScript中时插入一个php块:

var SomeVar = <?php echo $variable1; ?>;

依旧......

希望这会有所帮助

答案 2 :(得分:0)

这样的事情:

<?php
$variable1=300;
$variable2=600;
// and so on
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head></head>
<body>
<!-- blabla, some HTML, some JavaScript, etc. -->
  if (blah.blah==(something)){
<?php
  $phpvar = 20;
  // some other PHP code
  echo $phpvar;
?>
  }
</body>
</html>

有许多不同的方法可以实现这一点,有些人可能能够以一种在PHP中更惯用的方式回答(自从我完成PHP以来已经有一段时间了)。基本上我在这里做的是几件事:

  1. 我已经将PHP代码与HTML标记分开了一点点。对于可读性,性能等,这通常比大echo语句更受欢迎。不需要echo大块静态HTML,只需将其视为PHP标记之外的常规HTML。 (这将使开发和阅读更容易,因为您不必在HTML代码中逃避或处理PHP字符串。)
  2. 我为页面中间的代码添加了第二个PHP标记。我想你不仅要分配一个变量,而且还可以。您在该部分代码中回显的任何内容都将在呈现的HTML输出的那一部分中结束。您还可以围绕HTML编写循环,这将重复它,就像它是PHP代码的一部分一样。
  3. 最重要的是保持PHP代码在上下文中与它发出的HTML / JavaScript分开。在页面呈现在浏览器中之前,将在服务器上处理PHP代码。将页面传送到浏览器后,PHP代码就完成了,并且实际上不再存在。此时,它是一个在浏览器中呈现和执行的纯HTML / JavaScript页面。虽然目前尚不清楚您在问题中生成的HTML / JavaScript中实际尝试做什么,但您需要确保在最终代码中使其清晰易懂,并且不要尝试将JavaScript与PHP。 (至少在没有理解分离并相应地使用它的情况下,例如使用AJAX调用。)