PHPで作成した文字列をjavascript上で使用したいときのエスケープ処理について。
ダブルクォーテーションやシングルクォーテーション、バックスラッシュ等をjavascript上で文字列として扱うにはエスケープが必要になる。
PHPのjson_encode関数は自動で文字列をjavascript用にエスケープしてくれるが、これは配列やオブジェクトにも使える関数で、前後に””が付いた形で出力される。
単に文字列として扱いたい場合前後のダブルクォーテーションは邪魔なのでそれを取り除いて返す関数を作成した。
最初のifはNULLを文字列の”null”で返さないようにするため。
function js_string($str){ if(!$str) $str = ''; $tmp = json_encode($str); preg_match('/^"(.*)"$/',$tmp,$m); return $m[1]; }