PHP 回显 google 登录按钮

PHP echo a google sign-in button

当我使用 official Google dev website 中的这段代码时,它将按应有的方式呈现登录按钮:

<span id="signinButton">
  <span
    class="g-signin"
    data-callback="signinCallback"
    data-clientid="CLIENT_ID"
    data-cookiepolicy="single_host_origin"
    data-requestvisibleactions="http://schema.org/AddAction"
    data-scope="https://www.googleapis.com/auth/plus.login">
  </span>
</span>

但是当我尝试通过 PHP 创建此按钮时,使用简单的 echo 命令,它不会显示任何内容。任何人都知道为什么以及我可以做什么?

这是 PHP 代码:

$html = '';

$html .= '<span id="signinButton">';
  $html .= '<span';
    $html .= 'class="g-signin"';
    $html .= 'data-callback="signinCallback"';
    $html .= 'data-clientid="XXXXX"';
    $html .= 'data-cookiepolicy="single_host_origin"';
    $html .= 'data-requestvisibleactions="http://schema.org/AddAction"';
    $html .= 'data-scope="https://www.googleapis.com/auth/plus.login">';
  $html .= '</span>';
$html .= '</span>';

echo $html;

这是 PHP 代码的输出:

<span id="signinButton"><spanclass="g-signin"data-callback="signinCallback"data-clientid="85266228175-pl3302nr5m1ephd64oggies00ec6u224.apps.googleusercontent.com"data-cookiepolicy="single_host_origin"data-requestvisibleactions="http://schema.org/AddAction"data-scope="https://www.googleapis.com/auth/plus.login"></span></span>
$html = '';

$html .= '<span id="signinButton">';
  $html .= '<span ';
    $html .= 'class="g-signin" ';
    $html .= 'data-callback="signinCallback" ';
    $html .= 'data-clientid="XXXXX" ';
    $html .= 'data-cookiepolicy="single_host_origin" ';
    $html .= 'data-requestvisibleactions="http://schema.org/AddAction" ';
    $html .= 'data-scope="https://www.googleapis.com/auth/plus.login">';
  $html .= '</span>';
$html .= '</span>';

echo $html;

您似乎忘记了空格。以上应该有效。

您已将所有内容排成一行。您需要像这样在每一行中添加空格:

$html .= ' class="g-signin"';

(参见“'”和 "class" 之间)

否则你的输出将是:

<span id="signinButton"><spanclass="g-signin"data-callback="....

$html .= '<span'; 更改为 $html .= '<span ';

$html .= 'class="g-signin"';$html .= ' class="g-signin"';

您在 <spanclass

中的 "span" 和 "class" 之间缺少 space

但是,您应该为所有这些代码添加 space,因为其余代码都集中在一起,这使得 HTML 源代码更难阅读。

$html = '';

$html .= '<span id="signinButton">';
  $html .= '<span ';
    $html .= 'class="g-signin"';
    $html .= ' data-callback="signinCallback"';
    $html .= ' data-clientid="XXXXX"';
    $html .= ' data-cookiepolicy="single_host_origin"';
    $html .= ' data-requestvisibleactions="http://schema.org/AddAction"';
    $html .= ' data-scope="https://www.googleapis.com/auth/plus.login">';
  $html .= '</span>';
$html .= '</span>';

echo $html;

当您对 PHP 生成的内容有疑问时,您应该始终检查生成的 HTML。在这种情况下,如果您检查了 HTML,您可能会注意到标记名和属性之间缺少空格。

您可以在需要的地方为您的字符串添加空格。例如前几个实例...

...
$html .= '<span ';
$html .= 'class="g-signin" ';
...

您也可以考虑另一种方式,例如在本例中将 HTML 放在 PHP 标签之外。