输出代码原样

时间:2010-02-12 11:47:47

标签: php html escaping

添加注释 我必须在静态网页的html主体中粘贴以下代码3次,而不是必须粘贴它并拥有大量代码,我更喜欢只有一行(3次)调用代码的编写,像这样:<?php getgooglepub(); ?>


我喜欢制作一个php函数,它将输入hmtl页面的谷歌分析代码或adsense ....热门格式化代码以“按原样”输出所有&lt;&gt;“”''

这是输出的示例代码:

<script type="text/javascript"><!--
google_ad_client = "pub-0743213818925076";
/* 728x90, date de création 11/02/10 */
google_ad_slot = "9774402576";
google_ad_width = 870;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

请注意,尽管有创造性的答案,我发现myselft现在能够使它工作......当然,我的fautl ....我会复制粘贴代码,当然,你会标记问题,因为我没有任何线索!..

function getgooglepub()
{$google_code = <<<EOT

<script type="text/javascript"><!--
google_ad_client = "pub-0743213818925076";
/* 728x90, date de création 11/02/10 */
google_ad_slot = "9774402576";
google_ad_width = 870;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>

EOT;

echo htmlspecialchars($google_code);}

之后在html代码中有调用

<?php getgooglepub(); ?>

这是firefox中页面渲染的源代码... abviousely not working

&lt;script type=&quot;text/javascript&quot;&gt;&lt;!--
google_ad_client = &quot;pub-0743213818925076&quot;;
/* 728x90, date de création 11/02/10 */
google_ad_slot = &quot;9774402576&quot;;
google_ad_width = 870;
google_ad_height = 90;
//--&gt;
&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;
src=&quot;http://pagead2.googlesyndication.com/pagead/show_ads.js&quot;&gt;

&lt;/script&gt;

我已经在某处了解了[data]标签?....它可能是一种方法吗?

3 个答案:

答案 0 :(得分:4)

如果您想输出一些HTML代码(并查看实际的HTML代码而不解释它),您可以使用两者的组合:

  • <pre>标签,因此保留了原始代码的显示;即浏览器不会忽略换行符和多个空格
  • 以及htmlspecialchars之类的功能,因此<>&和引号都会被转义 - 所以它们不会被浏览器解释。

例如:

$str = <<<HTML
<script type="text/javascript"><!--
google_ad_client = "pub-0743213818925076";
/* 728x90, date de création 11/02/10 */
google_ad_slot = "9774402576";
google_ad_width = 870;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
HTML;

echo '<pre>';
echo htmlspecialchars($str);
echo '</pre>';
die;

Shoud显示HTML代码,不会被浏览器解释。

答案 1 :(得分:0)

如果您的HTML代码在变量中,请使用

echo htmlspecialchars($google_analytics);

有关详细说明,请参阅this question from yesterday

如果它还没有变量,你可以使用HEREDOC表示法来方便:

$google_analytics = <<<EOT

<script type="text/javascript"><!--
google_ad_client = "pub-0743213818925076";
/* 728x90, date de création 11/02/10 */
google_ad_slot = "9774402576";
google_ad_width = 870;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>


EOT;

echo htmlspecialchars($google_analytics);

答案 2 :(得分:0)

由于答案是正确的,并按“原样”打印代码,它不按我想要的方式进行。也许我没有以正确的方式解释它。所以我找到了解决方案。我使用带有代码的外部php文件,然后在主文件中我使用include。这样我只有一个代码,我可以重复使用很多次,谢谢!