- preg_replace: documentation ( source)
- json_encode: documentation ( source)
<?php
$passes = ["fo\"obar", "foobar\"", "foobar\\\\\"", "foo\\\"\"bar"];
$expect = '{"foo":{"password":"****"}}';
foreach ($passes as $pass) {
$json = json_encode(["foo"=>["password"=>$pass]]);
echo $expect;
echo "";
echo preg_replace('{("password"\s*:\s*)"(?:[^"\\\\]|(?:\\\\.))*"}', '$1"****"', $json);
if ($expect !== preg_replace('{("password"\s*:\s*)"(?:[^"\\\\]|(?:\\\\.))*"}', '$1"****"', $json)) {
echo "Password $pass is out of this league!";
exit(1);
}
}
echo "Filter test ok!";