JavaScript içinde PHP string

6 Cevap php

Şu anda JavaScript içinde bir metin dosyasının içeriğini yankı çalışıyorum. Her şey çalışıyor ama bir sorun var. Metin içinde metin kapalı her şeyi atma kesme işareti içerir. Aşağıda ben kullanıyorum kodu bir kısmıdır. BİRÇOK metin dosyaları için bu kodu kullanıyorum. Ben her metin dosyasında \ "'" her kesme işareti değiştirerek kabul var, ama başa metin dosyaları bir yeri vardır. Bu geçici bir çözüm bulmak için başka bir yolu olsaydı ben sadece merak ediyordum. Herhangi bir fikir büyük takdir edilmektedir.

<?php
     $lyrics = file_get_contents('Includes/Songs/Lose_My_Mind.txt');
?>

JavaScript parçası:

var scrollercontent='<?php echo $lyrics; ?>'

6 Cevap

addslashes() işlevini kullanmaya çalışın. Senin durumunda:

var scrollercontent='<?php echo addslashes($lyrics); ?>'

addslashes, çoğunlukla çalışır iken, bu daha iyidir:

var scrollercontent= <?php echo json_encode($lyrics, JSON_HEX_TAG); ?>;

json_encode değil sadece dizeler, herhangi bir veri türü için çalışır. Dizeleri sizin için yanlarında tırnak ekler, ve bu tür yeni satır karakteri kontrol kodları da dahil olmak üzere herhangi bir karakter için çalışacaktır.

JSON_HEX s PHP 5.3 özelliğidir. HEX_TAG endişelenmeden bir <script> bloğunda literal herhangi bir dize koymak anlamına gelir \x3C gibi bir JavaScript dize literal kodlama ile < yerine zamanından önce komut dosyası bloğu son verecek bir </script> dizisini içerebilir ki. (Hatta sadece </ kendi teknik geçersizdir.)

Denemek

addslashes(nl2br($lyrics))

(nl2br <br> etiketleri ile yeni hat değiştirir.)

Bu değiştirmeyi deneyin

var scrollercontent='<?php echo $lyrics; ?>'

Buna

var scrollercontent='<?php echo addslashes($lyrics); ?>'

veya

var scrollercontent='<?php echo htmlentities($lyrics); ?>'

these should help escape veya entitize quotes etc...

Eğer denedim:

<?php $lyrics = addslashes(file_get_contents('Includes/Songs/Lose_My_Mind.txt')); ?>

Sen file_get_contents komutundan sonra aşağıdaki satırı ekleyebilirsiniz:

$lyrics = str_replace("\'","\\'",$lyrics);

Bu kaçan kesme için tek kesme tüm değişecek ve JavaScript ile güzel oynamak gerekir.