Nasıl PHP ile çıkış JavaScript için

8 Cevap

Ben PHP için yeni duyuyorum. Ben çıktı PHP ile aşağıdaki JavaScript gerekir. Bu benim kodudur:

<html>
<body>
<?php

echo "<script type="text/javascript">";
echo "document.write("Hello World!")";
echo "</script>";

?>
</body>
</html>

Ama bu hatayı gösteriyor:

Ayrıştırma hatası: sözdizimi hatası, beklenmedik T_STRING, bekliyor ',' veya ';' satırında 4 / var / www / html / tezgah / kişi / script.php

Herkes yardım edebilir misiniz? Ben de bir uygulama için PHP, HTML ve JavaScript kullanmak için bazı basit öğreticiler gerek.

8 Cevap

Sen PHP dizge içinde JavaScript dize sınırlayıcı kaçmak gerekir. PHP ve JavaScript dizeleri hem çift tırnak kullanıyoruz. Bunun yerine böyle bir deneyin:

<html>
<body>
<?php

// Here, we use single quotes for PHP and double quotes for JavaScript
echo '<script type="text/javascript">';
echo 'document.write("Hello World!")';
echo '</script>';

?>
</body>
</html>

Sen dize sınırlayıcı tırnak gibi aynı olduğunda, JavaScript ve PHP hem tırnak kaçmak zorunda:

echo "\""; // escape is done using a backslash
echo '\'';

JavaScript aynı:

alert("\""); // escape is done using a backslash
alert(echo '\'');

Böyle kaçış dizileri ile bir dize okumak çok zor çünkü Ama, o gerektiği gibi, çift tırnak ile tek birleştirmek daha iyidir:

echo '"';
echo "'";

Alacağınız hata tırnak (like other answers said) kaçmak gerekir çünkü eğer.

Bunu önlemek için, "Heredoc" denilen sen dizeleri beyanlar için farklı bir sözdizimi kullanabilirsiniz

Bu cümle ile, hatta thoses kaçmak zorunda whithout, tek tırnak ve / veya çift tırnak içeren, uzun bir dize bildirebilirsiniz; o, senin Javascript kodu yazmak daha kolay yapmak, değiştirmek ve anlayacaksınız - her zaman iyi bir şeydir.

Örneğin, kod haline gelebilir:

$str = <<<MY_MARKER
<script type="text/javascript">
  document.write("Hello World!");
</script>
MY_MARKER;

echo $str;

(Çift tırnak tarafından ayrılmış dize gibi) Yorumlu sözdizimi unutmayın, değişkenler enterpolasyonlanır.

Başka bir seçenek böyle yapmaktır:

<html>
    <body>
    <?php
    ...php code...  
    ?>
    <script type="text/javascript">
        document.write("Hello World!");
    </script>
    <?php
    ....php code...
    ?>
    </body>
</html>

ve böyle yapın javascript içinde php kullanmak istiyorsanız:

<html>
    <body>
    <?php
        $text = "Hello World!;
    ?>
    <script type="text/javascript">
        document.write("<?php echo $text ?>");
    </script>
    <?php
    ....php code...
    ?>
    </body>
</html>

Bu yardımcı olur umarım.

Daha kolay bir yolu PHP Yorumlu metin sözdizimi kullanmaktır. Örnek:

<?php

echo <<<EOF
<script type="text/javascript">
    document.write("Hello World!");
</script>
EOF;

?>

Eğer tırnak kaçmak gerekir.

Bunu yapabilirsiniz:

echo "<script type=\"text/javascript\">";

ya da bu:

echo "<script type='text/javascript'>";

ya da bu:

echo '<script type="text/javascript">';

Ya da sadece php dışında kalmak

<script type="text/javascript">

Böyle çift tırnak kaçmak gerekir:

echo "<script type=\"text/javascript\">";
echo "document.write(\"Hello World!\")";
echo "</script>";

ya da bunun gibi, bunun yerine, çift tırnak içinde tek tırnak kullanın:

echo "<script type='text/javascript'>";
echo "document.write('Hello World!')";
echo "</script>";

ya da bunun gibi başka bir yol:

echo '<script type="text/javascript">';
echo 'document.write("Hello World!")';
echo '</script>';

Ayrıca, Strings hakkında daha fazla bilgi için PHP Manual çıkış.

Ayrıca, neden PHP kullanarak JavaScript yazdırmak istersiniz? Tasarım ile yanlış bir şey var gibi hissediyorum.

Bunu yapmak istiyorum:

<html>
<body>
<?php

print '
<script type="text/javascript">
document.write("Hello World!")
</script>
';

?>
</body>
</html>

Bu deneyin:

<html>
<body>
<?php

echo "<script type="text/javascript">";
echo "document.write("Hello World!");";
echo "</script>";

?>
</body>
</html>