PHP 呼应谷歌登录按钮


PHP echo a google sign-in button

当我从谷歌开发官方网站使用此代码时,它将呈现登录按钮:

<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>

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

这是 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>

当你对PHP生成的东西有问题时,你应该始终检查生成的HTML。在这种情况下,如果您检查了 HTML,您可能已经注意到缺少分隔标签名和属性的空格。

您可以根据需要向字符串添加空格。例如,前几个实例...

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

你也可以考虑一种不同的方式,比如在这种情况下只是把这个HTML放在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;

你好像忘记了空间。以上应该有效。

你在这里把所有东西都放在一行。您需要在每一行中添加空格,如下所示:

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

(请参阅"'"和"类"之间)

否则,您的输出将是:

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

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

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

您在<spanclass中的"span"和"class"这两个词之间缺少空格

但是,您应该为所有这些添加空格,因为其余代码都堆积在一起,这使得在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;