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; ?>);

$jsrPHP コードを作成する際に必要なすべてのエスケープを確認してください。一方、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 に答える