0

我有一个 .php 脚本。在一个变量中我添加了一个 html,但是在那个 html 中我想从另一个变量中获取文本,我该怎么做?

这是带有 html 的变量:

$ai_boc   = '
<html>
<head>
  <title>Notes by Douno</title>
</head>

<body>
<div align="center">
<div style="width:600px; height:auto; border-radius:10px; background-color:#F7F1B8; background-repeat: auto; font-family:Georgia;  color:#513414;">

    <div style="height:100px; padding-top:20px; padding-left:20px; text-align:left;">
    <p style="margin-bottom:0px; font-weight:bold; font-size:xx-large;">$ai_su</p>
    <p style="margin-top:5px; font-size:x-small; font-weight:bold;">$ai_da</p>
    </div>
        <div style="height:1px; background-image: url(http://dl.dropbox.com/u/99775621/divider.jpg); display:block; position:relative;">
        </div>
    <div style="position:relative; overflow:hidden;">

        <div style="height:auto; width:375; padding-left:20px; text-align:left; position:relative; float:left;">
            <div style="width:375px;"> <p style="font-size:x-small; font-weight:bold;"><?php echo $ai_bo?></p>
            </div>
        </div>

        <div style="height:auto; width:160px; padding-left:20px; padding-right:20px; text-align:left; position:relative; float:left;">
        <p style="font-size:x-small; font-weight:bold; vertical-align:bottom;">If this email is considered spam, please contact us.</br></br>This email was send via Notes. An Android app developed by Douno.</p>
        <a href="https://play.google.com/store/apps/details?id=appinventor.ai_L_Bogaerts_95.Notes">
        <img alt="Get it on Google Play"
        src="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" />
        </a>

        </div>

    </div>
        <div style="height:1px; background-image: url(http://dl.dropbox.com/u/99775621/divider.jpg); display:block; position:relative;">
        </div>
    <div style="height:100px; width:600px; display:inline-block; position:relative;">

    </div>      






</div>
</div>
</body>
</html>
';

我找不到任何有效的解释,所以我希望这里有人可以进一步帮助我。html 还没有完成......我还要进行一些更改。

4

9 回答 9

2

使用字符串连接或变量扩展:

 $html = '<html>'.$somevar.'</html>';      // concatenation
 $html = "<html>$somevar</html>";           // expansion, only works with double quotes (")

更好的是使用一个像样的模板系统来完全分离 HTML 和 PHP。

于 2013-01-29T13:43:46.683 回答
2

你可以使用这样的东西:

$test = 'test';
$html = '<h1>' . $test . '</h1>';

或者

$test = 'test';
echo "Hello {$test}";

另一种方式(仅在 PHP 5.3+ 中可用):

    $test = 'test';
    $html = <<<EOT 
Hello $test
EOT;
于 2013-01-29T13:44:53.183 回答
1

使用 HEREDOC .. 您可以在 Heredoc 中使用 HTML 和 PHP 变量,就像您通常会做的那样。

$ai_boc   = <<< EOT
<html>
<head>
  <title>Notes by Douno</title>
</head>

<body>
<div align="center">
<div style="width:600px; height:auto; border-radius:10px; background-color:#F7F1B8; background-repeat: auto; font-family:Georgia;  color:#513414;">

    <div style="height:100px; padding-top:20px; padding-left:20px; text-align:left;">
    <p style="margin-bottom:0px; font-weight:bold; font-size:xx-large;">$ai_su</p>
    <p style="margin-top:5px; font-size:x-small; font-weight:bold;">$ai_da</p>
    </div>
        <div style="height:1px; background-image: url(http://dl.dropbox.com/u/99775621/divider.jpg); display:block; position:relative;">
        </div>
    <div style="position:relative; overflow:hidden;">

        <div style="height:auto; width:375; padding-left:20px; text-align:left; position:relative; float:left;">
            <div style="width:375px;"> <p style="font-size:x-small; font-weight:bold;"><?php echo $ai_bo?></p>
            </div>
        </div>

        <div style="height:auto; width:160px; padding-left:20px; padding-right:20px; text-align:left; position:relative; float:left;">
        <p style="font-size:x-small; font-weight:bold; vertical-align:bottom;">If this email is considered spam, please contact us.</br></br>This email was send via Notes. An Android app developed by Douno.</p>
        <a href="https://play.google.com/store/apps/details?id=appinventor.ai_L_Bogaerts_95.Notes">
        <img alt="Get it on Google Play"
        src="https://developer.android.com/images/brand/en_generic_rgb_wo_45.png" />
        </a>

        </div>

    </div>
        <div style="height:1px; background-image: url(http://dl.dropbox.com/u/99775621/divider.jpg); display:block; position:relative;">
        </div>
    <div style="height:100px; width:600px; display:inline-block; position:relative;">

    </div>      






</div>
</div>
</body>
</html>
EOT;
于 2013-01-29T13:44:30.303 回答
0

尝试将此添加到您的代码中 -

$ai_boc .= $other_var;
于 2013-01-29T13:44:41.903 回答
0

你的主要引号应该是双引号,你可以说

$ai_boc="<html ... {$variable} ... more html";
于 2013-01-29T13:44:56.167 回答
0

有几个选项。

PHP 以不同的方式理解引号(阅读此内容,应该澄清您的疑问: http: //php.net/manual/en/language.types.string.php

最后,这是它应该如何工作的:

$replacement = "This is a string I want to insert into another one";
$bigger_text = "This is a bigger text. {$replacement} And the former variable has just been inserted here";

发生这种情况是因为 PHP “解析”双引号并在需要时插入变量。

为清楚起见,用大括号 {} 将插值字符串括起来也是一个好习惯,并且还允许您插值如下:

$interpolated = "Hello {$user[0]['name']}.";
于 2013-01-29T13:45:32.963 回答
0

当您有一个长 html 字符串时,您可以使用ob_start()and ob_get_clean()

<?php
ob_start();

$title = "My website";

?><html>
    <head>
        <title><?=$title?></title>
    </head>
    <body>
        ...
    </body>
</html><?php

$ai_boc = ob_get_clean();
于 2013-01-29T13:49:41.063 回答
0

如果您必须在 PHP 代码中嵌入大块 HTML,那么@Kalpesh Mehta 的答案中描述的 HEREDOC 语法就是这样做的方法。

但是,这里最好的答案是使用适当的模板机制——即使它只是预定义标记的基本字符串替换。然后你可以将你的 HTML 拆分成一个单独的文件,这将比将它嵌入到 PHP 字符串中更容易使用。

Sotemplate.html包含您的代码,并带有标记,例如{marker}您想要变量的位置。

然后你的 PHP 代码看起来像这样:

$ai_boc = file_get_contents('template.html');
$ai_boc = str_replace('{marker}', $my_variable, $ai_boc);
print $ai_boc;
于 2013-01-29T13:51:28.757 回答
-1

示例:

$var="测试";

$html="<html> $var </html>";

或者

$html="<html>". $var." </html>";
于 2013-01-29T13:44:13.693 回答