当我从谷歌开发官方网站使用此代码时,它将呈现登录按钮:
<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;