你能在PHP中嵌套JavaScript吗


Can you nest JavaScript in PHP?

我找到了这个广告旋转器脚本,我想在里面嵌套JavaScript,如下所示。我犯了错误,我该怎么做呢。

<?php 
// random number 1 - 100 $result_random = rand(1, 100); 
// if result less than or equal 70, display ad1 (70%) 
if($result_random <= 70){ 
  echo "<script type='text/javascript' src='http://myads.com'></script>"; 
} 
// if result less than or equal 90, display ad2 (20%) 
else if($result_random <= 90){ 
  echo "<script type='text/javascript' src='http://myads.com'></script>";
} 
// if result less than or equal 100, display ad3 (10%)
else { 
 echo "<script type='text/javascript' src='http://myads.com'></script>"; 
} 

您可以使用PHP将脚本源输出到用户的浏览器,但不能仅在PHP应用程序中包含并运行Javascript。

您的输出:

<script type='text/javascript' src='http://myads.com'></script>

是正确的行为。然后客户端将尝试包含该脚本源。

如果你要做有条件的包含,你会想在页面的头标签之间回声:

<html>
  <head>
    <?php
      // process, echo out a <script />
    ?>
  </head>
  <body>...</body>
</html>

问题/原因:

因为这条线路

// random number 1 - 100 $result_random = rand(1, 100);

被注释掉,

这条线路

if($result_random <= 70){ 

和这条线路

else if($result_random <= 90){ 

会在Undefined Variable $result_random in line X 的行中引起错误

您的代码@Codepad.org/saPRtKPU

(更新:好的,您没有得到任何错误,但由于$result_random未定义,每次只有最后一个else(ads3)情况被执行。任何未定义的变量都包含NULL值http://codepad.org/vVHMrWkl)

解决方案:

更改此行

// random number 1 - 100 $result_random = rand(1, 100);

// random number 1 - 100
$result_random = rand(1, 100);

即在$result_random.... 之前插入换行符/回车符(在Windows中输入

它应该可以解决问题,但如果现在,请发布您收到的确切错误消息。

顺便说一句,脚本的三个SRC都是相同的,即http://myads.com/。我想这只是一个例子,但即使这样,在测试时,我们也不知道我们是否得到了真正的随机结果。因此,我将ad1ad2ad3附加到各个URL。

完整代码:

<?php 
// random number 1 - 100
$result_random = rand(1, 100); 
// if result less than or equal 70, display ad1 (70%) 
if($result_random <= 70){ 
  echo "<script type='text/javascript' src='http://myads.com/ad1'></script>"; 
} // if result less than or equal 90, display ad2 (20%) 
    else if($result_random <= 90){ 
      echo "<script type='text/javascript' src='http://myads.com/ad2'></script>";
    }// if result less than or equal 100, display ad3 (10%)
        else { 
             echo "<script type='text/javascript' src='http://myads.com/ad3'></script>"; 
        } 
//Just for testing
echo "'r'nRandom Number is: ".$result_random;

Codepad.org现场演示http://codepad.org/oymuBk8w

您需要将此代码放在文件的部分中。只有这样它才会工作

它不会在Php内部wqrk。

只有当您将Js文件包含在html中或使用动态代码(php)n html 时,Js文件才能工作