【发布时间】:2013-11-04 17:42:15
【问题描述】:
我有 php 文件 index.php
在这个文件中使用我正在做的html代码:
index.php
echo '
<div>
<a class="fragment" href="">
<div>';
在 href 我想输入一些 php 变量的值,即$url 怎么做?
这是正确的方法吗?
<a class="fragment" href="<?php echo $url; ?>">
【问题讨论】:
我有 php 文件 index.php
在这个文件中使用我正在做的html代码:
index.php
echo '
<div>
<a class="fragment" href="">
<div>';
在 href 我想输入一些 php 变量的值,即$url 怎么做?
这是正确的方法吗?
<a class="fragment" href="<?php echo $url; ?>">
【问题讨论】:
您可以通过结束并重新开始来连接字符串:
echo '
<div>
<a class="fragment" href="' . $url . '">
<div>';
虽然我个人更喜欢停止 PHP 标记并重新启动它们(如果我有很多 HTML),因为我的 IDE 不会语法高亮 HTML,因为它是一个字符串:
?>
<div>
<a class="fragment" href="<?php echo $url; ?>">link</a>
</div>
<?php
【讨论】:
include 或 require 加载其内容。
由于您要打印多行 HTML,因此我建议您使用 heredoc:
echo <<<HTML
<div>
<a class="fragment" href="$url">
<div>
HTML;
HTML 可以是任何东西,只要您在开头和结尾都使用相同的标签。但是,结束标记 必须 位于其自己的行上,没有任何空格或制表符。话虽如此,特别是 HTML 还具有一些编辑器(例如 VIM)识别它并在文本上应用 HTML 语法着色的好处,而不是像普通字符串那样仅仅着色它。
如果你想使用数组或类似的,你可以使用{} 转义变量:
echo <<<HTML
<div>{$someArray[1]}</div>
HTML;
【讨论】:
如果您将 php 直接回显到 html 中,我喜欢这样做
<div><?=$variable?></div>
比写出整个事情要短得多(php echo blah blah)
如果你是直接在 php 中编写 html,那么有几个选项
$var = '<div>'.$variable.'</div>'; // concatenate the string
$var = "<div>$variable</div>"; // let php parse it for you. requires double quotes
$var = "<div>{$variable}</div>"; // separate variable with curly braces, also requires double quotes
【讨论】:
这样做
<?php
$url='http://www.stackoverflow.com';
echo "<div><a class='fragment' href='$url' /></div>";
【讨论】:
$url 周围加上单引号,我会投赞成票,因为我喜欢插值而不是连接。
如果你想保持 echo 语句,你可以这样做
echo '<a class="fragment" href="'.$url.'"><div>';
或
echo "<a class=\"fragment\" href=\"$url\">";
第一个更适合表演,恕我直言,可读性也更好。
【讨论】:
\"而不是使用单引号?
如果您想输入/输出带有嵌入变量的大块 HTML,您可以使用 Heredocs 来简化流程:
echo <<<_EOI_
<div>
<a class="fragment" href="$url">
<div>
_EOI_;
您不必担心转义引号、不断连接,或者像人们那样在<?php echo $var; ?> 中出现丑陋的插入和退出。
【讨论】: