对于某些着陆页模板,代码如下:
<?php
$Name = 'FOO';
$Title = 'FooTitle';
$Date = '00/00/0000';
$Time = '00:00';
$Time2 = 'AM';
$AttendLink = 'http://linktoattend.html';
$LogoLink = 'http://www.google.com';
$Logo = 'http://www.domain/images/image.jpg';
$LWidth = '';
$LHeight = '';
$Event = '<p class="indent">foo</p>';
$List = '<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
<li><strong class="red">As an added bonus:</strong>foo</li>
</ul>';
$Offer = '<p class="indent">foo</p>';
$Presenter = '<p class="indent"><a href="<?php echo $Link ?>">Link!</a></p>';
?>
为简洁起见,关注的领域是这个
<html>
<head>
<title><?php echo $Title ?></title>
</head>
<body>
<p><?php echo $Presenter ?></p>
</body>
</html>
其中变量“$ Presenter”输出“”作为链接。我明白为什么它这样做而不是如何解决它。如何在另一个变量“$ Presenter”中包含变量“$ Link”?是否有更加语义正确的方法来执行此操作?
谢谢
答案 0 :(得分:2)
试试这个
$Presenter = '<p class="indent"><a href="'.$Link.'">Link!</a></p>';
答案 1 :(得分:2)
您已嵌套<?php ?>
个标签。
更改为:
$Presenter = '<p class="indent"><a href="' . $Link . '">Link!</a></p>';
或者
$Presenter = "<p class='indent'><a href='$Link'>Link!</a></p>";
答案 2 :(得分:1)
当您已经在<?php ?>
内时,请勿重新开启<?php ?>
。而是将变量连接成单引号字符串:
$Presenter = '<p class="indent"><a href="' . $Link . '">Link!</a></p>';
或者,反转引号以在外部使用double,并在内部插入变量。在双引号内,遇到的变量将被插值。如果它是一个复杂变量,如数组$var[1]
或对象$obj->property
,请将它们包含在{}
{$object->property}
中。
$Presenter = "<p class='indent'><a href='$Link'>Link!</a></p>";
您确实应该查看PHP Strings documentation,了解有关如何使用这些内容的详细信息。
答案 3 :(得分:1)
我可以推荐阅读“ printf ”:
http://www.php.net/manual/en/function.printf.php
这样你可以在另一个字符串中“包含”另一个变量。
因此,您可以获得配置文件(包含模板内容)和模板文件,其中包含printf。
答案 4 :(得分:1)
我没有看到变量$ Link的定义,但我想说,如果在你调用模板之前定义它,请使用:
<?php
$Presenter = '<p class="indent"><a href="'.$Link.'">Link!</a></p>';
?>
如果在变量池定义和标记生成之间定义,请执行一个好的旧占位符搜索/替换:
<?php
$Presenter = '<p class="indent"><a href="{{link}}">Link!</a></p>';
?>
然后
<html>
<head>
<title><?php echo $Title ?></title>
</head>
<body>
<p><?php echo str_replace('{{link}}', $Link, $Presenter); ?></p>
</body>
</html>
注意:我假设您的$ Link变量是干净的,可以直接在标记中注入