【问题标题】:Concat String and php Variable when appending in html在 html 中追加时连接字符串和 php 变量
【发布时间】:2016-02-19 06:40:32
【问题描述】:

我使用了以下代码:

$html = '';
$html. = '<br></br>';
$html .= '<a href= "javascript:void(0)" class= "test" onclick= "get_data($access_token,1,$marketTagId);">Next 50  </a>';

但我的 PHP 变量无法识别。

【问题讨论】:

  • get_data('.$access_token.',1,'.$marketTagId.');
  • $html .= "&lt;a href= 'javascript:void(0)' class= 'test' onclick= 'get_data($access_token,1,$marketTagId);'&gt;Next 50 &lt;/a&gt;"; 需要了解 php 中引号的工作原理
  • 我试过了,但是不行
  • 是的,试过但没用:(

标签: php html string-concatenation


【解决方案1】:

双引号和单引号的区别

根据this Stackoverflow answer

  1. Single quoted strings 将几乎完全“按原样”显示内容。不会解释变量和大多数转义序列。例外情况是,要显示文字单引号,您可以使用反斜杠 \' 对其进行转义,而要显示反斜杠,您可以使用另一个反斜杠 \\ 对其进行转义(所以是的,即使是单引号字符串被解析)。
  2. Double quote strings 将显示大量转义字符(包括一些正则表达式),并将评估字符串中的变量。这里重要的一点是您可以使用花括号来隔离要评估的变量的名称。例如,假设您有变量$type,而您有什么echo "The $types are" 这将查找变量$types。要解决此问题,请使用 echo "The {$type}s are" 您可以将左大括号放在美元符号之前或之后。看看string parsing,看看如何使用数组变量等。

解决方案

它们无法识别,因为您已将所有字符串放在单引号中 (')。

您应该将它们全部替换为双引号 (")。

$html = "";
$html. = "<br></br>";
$html .= "<a href=\"javascript:void(0)\" class=\"test\" onclick=\"get_data('$access_token',1,'$marketTagId');\">Next 50</a>";

另一种解决方案

您还可以选择将变量与文本分开:

$html = '';
$html. = '<br></br>';
$html .= '<a href="javascript:void(0)" class="test" onclick="get_data("' . $access_token . '",1,"' . $marketTagId . '");">Next 50</a>';

另一种解决方案

如果不想转义那么多双引号,可以改用单引号:

$html = "";
$html. = "<br></br>";
$html .= "<a href='javascript:void(0)' class='test' onclick='get_data(\"$access_token\",1,\"$marketTagId\");'>Next 50</a>";

【讨论】:

    【解决方案2】:

    试试这个,可能对你有帮助

    <?php
    
    $html = '';
    $html. = '<br></br>';
    $html .= '<a href= "javascript:void(0)" class= "test" onclick= "get_data($access_token,1,'.$marketTagId.');">Next 50</a>';
    ?>
    

    【讨论】:

      【解决方案3】:

      试试这个

      get_data('".$access_token."',1,'".$marketTagId."');
      

      或者

       get_data(<?php $access_token ?>,1,<?php $marketTagId ?> ); 
      

      【讨论】:

        【解决方案4】:

        您需要在 PHP 变量周围写上'',否则在onclick 函数中它们将不起作用。

        使用下面的代码:-

        $html = '';
        $html. = '<br></br>';
        $html .= "<a href= 'javascript:void(0)' class= 'test' onclick= \"get_data('$access_token','1','$marketTagId');\">Next 50  </a>";
        

        希望对你有帮助:)

        【讨论】:

        • 这不是确切的解决方案,但我从中得到了想法。谢谢:)
        【解决方案5】:

        使用{}中的php变量

        $access_token = "1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
        $marketTagId = "__AAA__B_123";
        
        $html = "";
        $html .= "<br></br>";
        $html .= "<a href=\"javascript:void(0)\" class=\"test\" onclick=\"get_data('{$access_token}',1, '{$marketTagId}')\">Next 50</a>";
        
        echo htmlentities($html);
        

        【讨论】:

        • 转到phpfiddle-cli,粘贴下面的代码并按F9键,我明白了; &lt;br&gt;&lt;/br&gt;&lt;a href="javascript:void(0)" class="test" onclick="get_data('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ',1, '__AAA__B_123')"&gt;Next 50&lt;/a&gt;
        【解决方案6】:

        你的代码:

        $html. = '<br></br>'; 
        $html .= '<a href= "
        

        改成这样:

        $html.= '<br></br>'; 
        $html.= '<a href= "
        

        试试这个:

        $html = '';
        $html.= '<br></br>';
        $html.= '<a href= "javascript:void(0)" class= "test" onclick= "get_data($access_token,1,$marketTagId);">Next 50  </a>';
        

        你能期待这个吗:

        【讨论】:

        • 但我需要单引号中的每个 php 变量。
        【解决方案7】:

        大家好,感谢您的帮助。 这对我有用:

          $html .= '</table>';
            $html .= '<br><br>';
            $html .= '<a href= "javascript:void(0)" class= "test" onclick= \'get_data("'.$access_token.'","1","'.$marketTagId.'");\'>Next 50  </a>';
        

        【讨论】:

        • 在 Stackoverflow 上表示感谢是支持并接受正确答案,而不是重新发布为您自己的答案!
        • 根据您的profile information 的一堆答案,我不这么认为,顺便说一句,欢迎您
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-17
        • 1970-01-01
        • 2010-12-30
        • 1970-01-01
        相关资源
        最近更新 更多