0

我正在测试一个脚本来自动从 txt 文件中读取广告)我想使用它,因为它是我已经拥有并且正在工作并且只需要进行一些更改的脚本,但是,有些东西停止了工作,我不知道出了什么问题,我正在检查输出,javascript 上的一切似乎都很好,但由于某种原因它不起作用,它带有意外的非法令牌,并且下面的未捕获语法错误是代码。任何帮助表示赞赏

PHP/javascript组合代码

<?php 
    $adsf = "test.txt";
    $count = 0;
    $frd = fopen ($adsf,'r');
    $artest = array();
    $artest2 = array();
    $artest3 = array();
      while(!feof($frd))
       {

         $artest[$count] = fgets($frd);
         $count++;
        }
      fclose($frd);


      $t = 0;
      while($t < $count)
        {
        $artest2[$t] = str_replace("\n" ,'', $artest[$t]);
          $artest3[$t] ="\"".$artest2[$t]."\", ";

          $t++;
        }    





          unset($artest3[$t - 1]);
          shuffle($artest3);
          $t = 0;
         while ($t < $count)
           {

            $jsr = $jsr.$artest3[$t - 1];
            $t++;

            }

               //$jsr. = "\"test 1 test 2 test 3\", ";
            $jsr = $jsr." \"Advertise Here come to Lot 28 or Click <a href=\\\"pub.php\\\" target=\\\"_blank\\\">HERE</a> For More Information\" ";
       ?>


             var avs = new Array ( <?echo $jsr; ?>);

             //var cron = 60;
              var sub = 0;
             function show5(){
                if (!document.layers&&!document.all&&!document.getElementById)
                return




               //change font size here to your desire
               myclock="<font size='2' face='Arial' ><b>"+avs[sub]+"</b></font>"
              if (document.layers){
                  document.layers.liveclock.document.write(myclock)
                  document.layers.liveclock.document.close()
                  }
                 else if (document.all)
                   liveclock.innerHTML=myclock             
                   else if (document.getElementById)
                    document.getElementById("liveclock").innerHTML=myclock

                    ;
                  sub++;

                  if(sub > <? echo $count - 1; ?>)
                   {
                      sub = 0;

                       }
                   setTimeout("show5()",5000)
                 }


             window.onload=show5

问题出现在数组上,如果我在 txt 文件上什么都没放,一切正常,但如果我尝试提示任何东西,以前可以工作,但现在出现“未捕获的语法错误意外令牌非法”,我检查了引号和没事。

4

1 回答 1

2

这是一个坏坏坏坏坏坏主意:

         var avs = new Array ( <?echo $jsr; ?>);

$jsr查看在PHP 代码中构建时必须执行的所有转义操作。然而,如果您正确地执行此操作,使用 json_encode(),您只需在 PHP 中构建一个值数组,例如

$jsr = array();
$jsr[] = "Look ma, a single quote '!!!!"
$jsr[] = 'Hey pa, double quote here "!!!';

进而

var avs = <?php echo json_encode($jsr) ?>;
于 2012-11-22T19:03:48.753 回答