PHP : 文字列をjavascript用にエスケープする


Pocket

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];
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です