1. ホーム
  2. php

シングルクォートだけをエスケープするにはどうしたらよいですか?

2023-09-11 12:52:39

質問

PHPでレンダリングされた文字列を使用するJavaScriptのコードを書いています。PHP の文字列でシングルクォート (およびシングルクォートのみ) をエスケープするにはどうしたらよいでしょうか。

<script type="text/javascript">
    $('#myElement').html('say hello to <?php echo $mystringWithSingleQuotes ?>');
</script>

どのように解決するのですか?

ごく簡単に言うと echo str_replace('\'', '\\\'', $myString); しかし、私は JSON json_encode() という関数を使うことで、より信頼性が高くなります(例えば改行が引用される)。

<?php $data = array('myString' => '...'); ?>

<script>
   var phpData = <?php echo json_encode($data) ?>;
   alert(phpData.myString);
</script>