php [php:escape json_encode()] #php #js
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php [php:escape json_encode()] #php #js相关的知识,希望对你有一定的参考价值。
// 配列やオブジェクトなどのデータをJavaScriptに直接渡すときは、json_eocode()したものをそのままechoする
echo json_encode($data);
// このとき、悪意のコードの実行を防ぐためにjson_encode()のエスケープオプションを指定することでエスケープ可能
echo json_encode($array, JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT);
// クラスメソッドにしてみる
class Protect {
/**
* json_h
* json_encode with Escape
* @param mix $source
* @return str json-string
*/
static public function json_h($source,$option = JSON_HEX_TAG | JSON_HEX_AMP | JSON_HEX_APOS | JSON_HEX_QUOT){
return json_encode($source,$option);
}
}
// Protectクラス json_h() テスト
$Protect = new Protect();
class Item {
public $properties = ['name','price'];
}
$Item = new Item();
$name = 'item1';
$price = '1000';
$mail = 'unaristocratic@forwardal.org';
$msg = "<script>alert('xss is here!!');</script>";
$json = $Protect::json_h(compact($Item->properties,'mail','msg'));
var_dump($json);
以上是关于php [php:escape json_encode()] #php #js的主要内容,如果未能解决你的问题,请参考以下文章
javascript Escape特殊字符(用于JS的PHP)
PHP MYSQLi real_escape_string [关闭]
PHP : CodeIgniter mysql_real_escape_string 警告
HTML 表单未将值传递给 PHP (mysqli_real_escape_string)
htmlentities() 和 mysql_real_escape_string() 是不是足以清理 PHP 中的用户输入? [复制]
MediaWiki:PHP 警告:mysqli::real_escape_string() 期望参数 1 是字符串,给定对象