-5

重複の可能性: PHP
を介して JavaScript ファイルを解析する PHP
が javascript 内で機能しなくなった

localhost で .php ファイルを実行していますが、昨日は機能し、今日はエラーが発生しましたが、コードを変更していません。これは、私の長い実際のコードと同じエラーを持つテスト ファイルです。

<html>
  <script type="text/javascript">
    <? $message = "Hello"; ?>
  </script>
  <? echo $message; ?>
</html>

私はこれが Hello を書くばかげた方法であることを知っていますが、javascript 内で php を使用しようとすると、どのようなエラーが発生するかを示しています。昨日は完全に正常に機能しており、コードはまったく変更されていません。これを実行すると、3 行目に「unexpected token <」と表示されます。apache/php/mysql の問題だと思いますが、修正しようとして迷っています。どんな提案も素晴らしいでしょう。ありがとう。

4

3 に答える 3

1

短いタグが無効になっていると思います。これを機能させるには、PHPの短いタグを有効にする必要があります。これが機能するかどうかを確認します。

<html>
  <script type="text/javascript">
    <?php $message = "Hello"; ?>
  </script>
  <?php echo $message; ?>
</html>

そして、私の意見では、なぜ<script>タグを開いてそこでPHPサーバーサイドステートメントを宣言するのか、私にはわかりません。あのね?何も出力しません。とにかく、上記のコードの出力は次のようになります。

<html>
  <script type="text/javascript">

  </script>
  Hello
</html>

したがって、<script>タグはクライアント側であり、PHPはそれを気にしないため、タグを付ける必要はありません。<?php ?>好きな場所に指定できます。タグ内にある限り、ブラウザで解析されることはありません。:)


独自のシステムでこれを行う場合、PHPで短いタグを有効にするには、次のようにします。

  1. ファイルを見つけphp.iniます。
  2. これを見つけてください:

    short_open_tag = Off
    
  3. 次のように変更します。

    short_open_tag = On
    

マニュアルから:

short_open_tag: PHPのオープンタグの短縮形を許可するかどうかをPHPに指示します。PHPをXMLと組み合わせて使用​​する場合は、インライン(<? ?>)を使用するためにこのオプションを無効にすることができます。<?xml ?>それ以外の場合は、PHPで印刷できます。例:<?php echo '<?xml version="1.0"?>'; ?>。また、無効にした場合は、長い形式のPHPオープンタグを使用する必要があります(<?php ?>)

于 2013-01-31T17:24:53.577 に答える
0

その無効なJavaScript。

phpが実行された後は、<script type="text/javascript"></script>何も記述していないため、domは次のようになります。

試す:

<script>
var hello = "<?php echo 'hello' ?>"
</script>
<script type="text/javascript">
document.writeln(hello)
</script>
于 2013-01-31T17:28:59.097 に答える
-1

スクリプトはそのままで問題なく動作します。質問に投稿されたコードは完全ですか?問題を再現できた唯一の方法は、次のコードを使用することでした。

<?php
<html>
  <script type="text/javascript">
    <? $message = "Hello"; ?>
  </script>
  <? echo $message; ?>
</html>
?>

私が間違っている場合は訂正してください。ただし、投稿したコードは* .phpファイル内およびphpタグの間にあると想定しています。この場合は、上記のタグを削除すると機能するはずです。

于 2013-01-31T17:30:10.503 に答える