/** * Unicodeエスケープされた文字列をUTF-8文字列に戻す。 * 参考:http://d.hatena.ne.jp/iizukaw/20090422 * @param unknown_type $str */ function unicode_encode($str) { return preg_replace_callback("/\\\\u([0-9a-zA-Z]{4})/", "encode_callback", $str); } function encode_callback($matches) { return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UTF-16"); } $c = $_GET['class']; $n = $_GET['number']; echo 'var c = "' . $c . '", n = ' . $n . ';'; $t = json_decode(file_get_contents("table.json"), true); for ($i = 0; $i < count($t[$c]); $i++) { if ($t[$c][$i]['number'] == $n) { echo 'var td = ' . json_xencode($t[$c][$i]) . ';'; break; } } ?> </script> <script> function elm(id){ return document.getElementById(id); } elm("name").innerHTML = td.family + td.first; elm("comment").innerHTML = td.comment; elm("screen").style.backgroundImage = "url('"+td.photo+"')"; elm("screen").style.backgroundSize = td.zoom + "%"; elm("screen").style.backgroundPosition = td.px + "% " + td.py + "%";
$p['class'] = $cla; $p['number'] = (int) $num; $p['styled_number'] = $numSTR; $p['family'] = $fam; $p['first'] = $fir; $p['comment'] = $com; $p['photo'] = $savePath; $p['zoom'] = $zoo; $p['px'] = $px; $p['py'] = $py; $t[$cla][] = $p; if (!is_uploaded_file($_FILES["photo"]["tmp_name"])) { echo "写真が添付されていない😣作業を中止します。<br>"; exit; } if (file_put_contents("table.json", json_xencode($t), JSON_UNESCAPED_UNICODE)) { echo "データテーブル保存に成功した😄<br>"; } else { echo "データテーブルに書き込めない😨作業を中止します。<br>"; exit; } } else { echo "データテーブルが開けない😨作業を中止します。<br>"; exit; } $tmp = $_FILES["photo"]["tmp_name"]; if (move_uploaded_file($tmp, $savePath)) { echo "写真を保存した🙌" . $_FILES["photo"]["name"] . "→ {$savePath} <br>"; echo '<script>setTimeout(function(){location.href="upload.html";},1000);</script>'; } else { echo "写真を保存できなかった😨作業を中止します。<br>";
<?php function json_xencode($value, $options = 0, $unescapee_unicode = true) { $v = json_encode($value, $options); if ($unescapee_unicode) { $v = unicode_encode($v); $v = preg_replace('/\\\\\\//', '/', $v); } return $v; } /** * Unicodeエスケープされた文字列をUTF-8文字列に戻す。 * 参考:http://d.hatena.ne.jp/iizukaw/20090422 * @param unknown_type $str */ function unicode_encode($str) { return preg_replace_callback("/\\\\u([0-9a-zA-Z]{4})/", "encode_callback", $str); } function encode_callback($matches) { return mb_convert_encoding(pack("H*", $matches[1]), "UTF-8", "UTF-16"); } $d = json_decode($_POST['data'], true); $f = json_decode(file_get_contents("table.json"), true); for ($i = 0; $i < count($f[$d['class']]); $i++) { if ($d['photo'] == $f[$d['class']][$i]['photo']) { $f[$d['class']][$i] = $d; break; } } file_put_contents("table.json", json_xencode($f)); echo '処理完了🙆';