【问题标题】:How to escape PHP inside the double quotes of html?如何在html的双引号内转义PHP?
【发布时间】:2017-04-30 17:44:11
【问题描述】:

我的代码是

 echo '<textarea name="" class="widefat" style="width:100%; height: 100px;" value="<?php ?>"></textarea>';

如何在值里面使用php

期待

谢谢

【问题讨论】:

  • 如何使用php里面的值 做什么?
  • 小注 &lt;textarea&gt;没有value属性
  • @RiggsFolly — 在echoed 内容中执行 PHP。
  • @Quentin 这就是我的假设,但我们都知道这个假设是所有失败之母
  • 当您询问有关错误的问题时总是包括错误日志。在php 脚本的顶部添加error_reporting(E_ALL); ini_set('display_errors', 1);,它会返回什么?

标签: php escaping concatenation


【解决方案1】:

正如@quentin 所提到的,您正在尝试echo 一个php 标记,这是您做不到的。要在字符串中使用变量,而不用加上引号,我通常使用heredoc,即:

<?php
$value = 100;
echo <<< EOF
<textarea name="" class="widefat" style="width:100%; height: 100px;" value="{$value}"></textarea>
EOF;

【讨论】:

    【解决方案2】:

    你不能。

    这里的问题与 HTML 无关。问题是因为你试图echo PHP 标签。

    PHP 要么输出所有内容(默认),要么执行 PHP(在&lt;?php?&gt; 之间)。如果您使用echo 显式输出,那么您将绕过解析器对&lt;?php 的搜索。你不能这样嵌套 PHP 程序。

    改为重构您的代码。

    ?>
    <textarea name="" class="widefat" style="width:100%; height: 100px;">
    <?php ... ?>
    </textarea>
    <?php
    

    注意:Textarea 元素没有 value 属性。

    【讨论】:

      【解决方案3】:

      你可以通过以下方式做到这一点,

        echo '<textarea name="" class="widefat" style="width:100%; height: 100px;">'.$value.'</textarea>';
      

      或者

       <textarea name="" class="widefat" style="width:100%; height: 100px;"><?php echo $value; ?></textarea>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-19
        • 1970-01-01
        • 1970-01-01
        • 2013-06-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多