{"id":12451,"date":"2024-04-08T03:08:37","date_gmt":"2024-04-08T03:08:37","guid":{"rendered":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/?p=12451"},"modified":"2024-05-02T01:22:47","modified_gmt":"2024-05-02T01:22:47","slug":"%e4%bd%9c%e6%a5%ad%e3%83%a1%e3%83%a2-20240408-%e3%83%9d%e3%83%bc%e3%82%bf%e3%83%ab%e3%82%b5%e3%82%a4%e3%83%88%e3%81%ae%e3%82%b3%e3%83%b3%e3%83%86%e3%83%b3%e3%83%84%e3%82%92%e7%a7%bb%e5%8b%95","status":"publish","type":"post","link":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/?p=12451","title":{"rendered":"(\u4f5c\u696d\u30e1\u30e2 20240408) \u30dd\u30fc\u30bf\u30eb\u30b5\u30a4\u30c8\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u79fb\u52d5\u3059\u308b"},"content":{"rendered":"<p><a href=\"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/wp-content\/uploads\/2024\/04\/20240502a.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/wp-content\/uploads\/2024\/04\/20240502a-300x170.png\" alt=\"\" width=\"300\" height=\"170\" class=\"aligncenter size-medium wp-image-12707\" srcset=\"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/wp-content\/uploads\/2024\/04\/20240502a-300x170.png 300w, http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/wp-content\/uploads\/2024\/04\/20240502a-1024x581.png 1024w, http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/wp-content\/uploads\/2024\/04\/20240502a-768x435.png 768w, http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/wp-content\/uploads\/2024\/04\/20240502a-600x340.png 600w, http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/wp-content\/uploads\/2024\/04\/20240502a.png 1469w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>\u6559\u6750\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092 5.10 \u306b\u3042\u3052\u305f\u306e\u3067\uff0c\u30dd\u30fc\u30bf\u30eb\u30b5\u30a4\u30c8\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u79fb\u52d5\u3057\u307e\u3059\u3002\u305d\u3046\u306f\u8a00\u3063\u3066\u3082\uff0cCollege_Physics \u306e\u5206\u3060\u3051\u3092\u79fb\u52d5\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u306b\u305d\u306e\u30b3\u30fc\u30c9\u3092\u6b8b\u3057\u3066\u304a\u304d\u307e\u3059\u3002\u3053\u308c\u306f\u76f4\u63a5\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u3092\u64cd\u4f5c\u3059\u308b\u3082\u306e\u3067\u3059\u3002<\/p>\n<pre><code style=\"color: midnightblue; font-size: 12px; white-space: pre-wrap;\">&lt;?php\r\n\r\n\/\/ College Physics \u306e\u30c7\u30fc\u30bf\u3092\u3001NLportal4.11 \u304b\u3089 NLportal5.1\u7528\u306b\u4fee\u6b63\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\r\n\r\n  \/\/ \u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306b\u63a5\u7d9a\r\n  $DB = mysqli_connect( 'localhost', 'username', 'password', 'NLportal41') or die(mysqli_connect_error()); \r\n  \r\n  mysqli_set_charset($DB, 'utf8');\r\n\r\n  $DB2 = mysqli_connect( 'localhost', 'username', 'password', 'NLportal510') or die(mysqli_connect_error());\r\n  \r\n  mysqli_set_charset($DB2, 'utf8');\r\n\r\n\r\n\/\/ \u30b3\u30d4\u30fc\u5148($DB2)\u306e\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u306e\u5185\u5bb9\u3092\u524a\u9664\u3059\u308b\r\n\r\n$sql = &quot;DROP TABLE `table_College_Physics`;&quot;;\r\n\r\nmysqli_query($DB2, $sql) or die(mysqli_error($DB2));\r\n\r\necho &quot;DROP table_College_Physics\\n&quot;;\r\n\r\n\r\n\/\/  \u30b3\u30d4\u30fc\u3059\u308b\r\n\r\n$sql = &quot;CREATE TABLE NLportal510.table_College_Physics LIKE NLportal41.table_College_Physics&quot;;\r\n\r\nmysqli_query($DB2, $sql) or die(mysqli_error($DB2));\r\n\r\n$sql = &quot;INSERT INTO NLportal510.table_College_Physics SELECT * FROM NLportal41.table_College_Physics&quot;;\r\n\r\nmysqli_query($DB2, $sql) or die(mysqli_error($DB2));\r\n\r\necho &quot;copy table_College_Physics\\n&quot;;\r\n\r\n\r\n\r\n\/\/ \u4f5c\u696d\u30d5\u30a9\u30eb\u30c0\u30fc\u3092\u7528\u610f\u3059\u308b\r\n\r\n$timestamp = timestamp( );\r\n\r\n$head = &quot;tmp&quot;.$timestamp;\r\n\r\n$foldername = mb_convert_encoding($head, &quot;UTF-8&quot;, &quot;auto&quot;);\r\n\r\npassthru(&quot;mkdir -p \/var\/www\/html\/temporary\/$foldername\/tmp\/&quot;);\r\n\r\necho &quot;\u4f5c\u696d\u30d5\u30a9\u30eb\u30c0\u30fc $foldername \u3092\u4f5c\u6210\\n&quot;;\r\n\r\n\r\n\r\n\/\/ key \u306e\u7528\u610f\r\n\r\n$file = '\/xxxx\/xxxx\/xxxx\/key.txt';\r\n\r\n$keyxml = simplexml_load_string(file_get_contents($file));\r\n\r\n\r\n\r\n\/\/ \u4ee5\u524d\u3001\u305d\u308c\u305e\u308c\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u306e\u6b63\u89e3\u3092\u5fa9\u53f7\u3059\u308b\u3000\u30b3\u30fc\u30c9\u304c\u3000\u6b64\u51e6\u306b\u3042\u3063\u305f\u3002\u73fe\u5728\u306f\u6697\u53f7\u5316\u3055\u308c\u3066\u3044\u306a\u3044\r\n\r\n\r\n\r\n$a_table_name = \"`table_College_Physics`\";\r\n\r\n$sql = \"SELECT id, title, zip FROM $a_table_name;\";\r\n\r\n$result = mysqli_query($DB2, $sql) or die(mysqli_error($DB2));\r\n\r\n$rows = mysqli_num_rows($result);\r\n\r\necho \"table_College_Physics has \".$rows.\" rows.\\n\";\r\n\r\n\r\nfor ($j = 0; $j &lt; $rows; $j = $j + 1){\r\n\r\n&#9;$row = mysqli_fetch_array($result);\r\n\r\n&#9;$id = $row['id'];\r\n\r\n&#9;$a_file = fopen(\"\/var\/www\/html\/temporary\/$foldername\/tmp.zip\",\"w\");\r\n\r\n&#9;fwrite($a_file, $row['zip']);\r\n\r\n&#9;fclose($a_file);\r\n\r\n&#9;passthru(\"cd \/var\/www\/html\/temporary\/$foldername\/; unzip -q \/var\/www\/html\/temporary\/$foldername\/tmp.zip -d \/var\/www\/html\/temporary\/$foldername\/tmp\/\");\r\n\r\n\r\n\r\n\r\n\r\n\r\n&#9;\/\/ &#30011;&#20687;&#12420;&#21205;&#30011;&#12394;&#12393;&#12398; media &#12501;&#12449;&#12452;&#12523;&#12434;&#12522;&#12473;&#12488;&#12450;&#12483;&#12503;&#12377;&#12427;\r\n\r\n&#9;$fullpath=\"\/var\/www\/html\/temporary\/$foldername\/tmp\/html\/\";\r\n\r\n&#9;$mediaFileArray = array();\r\n\r\n&#9;if ($handle = opendir($fullpath)) {\r\n\r\n&#9;&#9;\/\/    echo \"Directory handle: $handle\\n\";\r\n&#9;&#9;\/\/    echo \"Entries:\\n\";\r\n\r\n&#9;&#9;\/* &#12487;&#12451;&#12524;&#12463;&#12488;&#12522;&#12434;&#12523;&#12540;&#12503;&#12377;&#12427;&#38555;&#12398;&#27491;&#12375;&#12356;&#26041;&#27861;&#12391;&#12377; *\/\r\n&#9;&#9;\r\n&#9;&#9;while (false !== ($entry = readdir($handle))) {\r\n\r\n&#9;&#9;&#9;if (preg_match('\/gif\/i',$entry) || preg_match('\/jpg\/i',$entry) || preg_match('\/png\/i',$entry) || preg_match('\/svg\/i',$entry) || preg_match('\/mp3\/i',$entry) || preg_match('\/mp4\/i',$entry)) {\r\n\r\n&#9;&#9;&#9;&#9;$mediaFileArray[] = $entry;\r\n&#9;&#9;&#9;}\r\n\r\n&#9;&#9;}\r\n\r\n&#9;&#9;closedir($handle);\r\n&#9;}\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n&#9;\/\/ html&#12501;&#12457;&#12523;&#12480;&#12540;&#20869;&#12398; index.html &#12434;&#26356;&#26032;&#12377;&#12427;\r\n\r\n&#9;passthru(\"cp -f .\/simple_question\/html\/index.html \/var\/www\/html\/temporary\/$foldername\/tmp\/html\/\");\r\n&#9;\r\n\r\n\r\n\r\n&#9;$config_text = file_get_contents(\"\/var\/www\/html\/temporary\/$foldername\/tmp\/configfile.xml\");\r\n\r\n&#9;$config_xml = simplexml_load_string($config_text);\r\n\r\n\r\n\r\n&#9;$xmlstr = reConfig($config_xml, $mediaFileArray);\r\n&#9;\r\n\r\n\r\n&#9;\/\/ configfile.xml &#12434;&#32622;&#12365;&#25563;&#12360;&#12427;\r\n\r\n&#9;$configfile = fopen(\"\/var\/www\/html\/temporary\/$foldername\/tmp\/configfile.xml\",\"w\");\r\n\r\n&#9;fputs($configfile,$xmlstr);\r\n\r\n&#9;fclose($configfile);\r\n\r\n\r\n&#9;passthru(\"cd \/var\/www\/html\/temporary\/$foldername\/tmp ; zip -q -r \/var\/www\/html\/temporary\/$foldername\/new.zip .\/configfile.xml .\/html\");\r\n\r\n&#9;$zipbinary = file_get_contents(\"\/var\/www\/html\/temporary\/$foldername\/new.zip\");\r\n\r\n&#9;$zipbinary = mysqli_real_escape_string($DB2, $zipbinary);\r\n\r\n\r\n&#9;$sql = \"UPDATE $a_table_name SET zip='$zipbinary' WHERE id='$id'\";\r\n\r\n&#9;$result_UPDATE = mysqli_query($DB2, $sql) or die(mysqli_error($DB));\r\n\r\n&#9;echo \"changed \".$row['title'].\"\\n\";\r\n\r\n\r\n&#9;\/\/ &#20316;&#26989;&#12501;&#12449;&#12452;&#12523;&#12434;&#28040;&#12377;\r\n\r\n&#9;passthru(\"rm -r \/var\/www\/html\/temporary\/$foldername\/*\");\r\n\r\n}\r\n\r\n\/\/ &#20197;&#19979;&#12289;&#38306;&#25968;\r\n\r\nfunction timestamp() {\r\n\r\n&#9;$stamp =  microtime();\r\n\r\n&#9;list($msec, $sec) = explode(\" \", $stamp);\r\n\r\n&#9;$msec = $msec + 1;\r\n\r\n&#9;$msec = (string)$msec*1000000;\r\n\r\n&#9;$msec = substr($msec,1);\r\n\r\n&#9;$timestamp = $sec.$msec;\r\n\r\n&#9;return $timestamp;\r\n\r\n}\r\n\r\nfunction makePhpseclibKey($timestamp) {\r\n\r\n&#9;global $keyxml;\r\n\r\n&#9;$keynum = intval(substr($timestamp,-2,2));\r\n&#9;\r\n&#9;$keytxt = (string) $keyxml-&gt;key[$keynum]-&gt;public;\r\n\r\n&#9;return $keytxt;\r\n\r\n}\r\n\r\n\r\nfunction reConfig($xml, $mediaFileArray) {\r\n\r\n&#9;$timestamp = timestamp( );\r\n&#9;\r\n&#9;$xml_title = $xml-&gt;title;\r\n&#9;\r\n&#9;$xml_keyword = $xml-&gt;keyword;&#9;\r\n&#9;\r\n&#9;$xml_edit_where = \"kanaike.susi.oita-u.ac.jp\";\r\n&#9;&#9;\r\n&#9;$xml_edit_when = $timestamp;&#9;\r\n&#9;\r\n&#9;$keytxt = makePhpseclibKey($timestamp);\r\n&#9;&#9;\r\n&#9;$xml_TextHeight = $xml-&gt;TextHeight;\r\n\r\n\r\n\r\n&#9;$examinationSentenceStr = \"\";\r\n\r\n&#9;$examinationSentenceStr = $examinationSentenceStr . \"&lt;texmain&gt;&lt;\/texmain&gt;\\n\";\r\n&#9;\r\n&#9;$examinationSentenceStr = $examinationSentenceStr . \"&lt;addFile&gt;\\n\";\r\n&#9;\r\n\r\n&#9;foreach ($mediaFileArray as $node) {\r\n&#9;\r\n&#9;&#9;$examinationSentenceStr = $examinationSentenceStr . \"&lt;node&gt;&lt;label&gt;\" . htmlspecialchars($node) . \"&lt;\/label&gt;&lt;base64&gt;&lt;\/base64&gt;&lt;\/node&gt;\\n\";\r\n&#9;&#9;&#9;\r\n&#9;}\r\n\r\n&#9;$examinationSentenceStr = $examinationSentenceStr . \"&lt;\/addFile&gt;\\n\\n\";\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n$configstr = &lt;&lt;&lt; end_of_quote\r\n&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\r\n\r\n&lt;root&gt;\r\n\r\n&lt;version&gt;5.10&lt;\/version&gt;\r\n\r\n&lt;server&gt;\r\n&lt;url&gt;https:\/\/kanaike.susi.oita-u.ac.jp&lt;\/url&gt;\r\n&lt;\/server&gt;\r\n\r\n&lt;scriptFolder&gt;\/phpSimpleQuestionNL5.10&lt;\/scriptFolder&gt;\r\n\r\n&lt;cgi&gt;\r\n&lt;url&gt;\/phpSimpleQuestionNL5.10\/answertest_for_NL.php&lt;\/url&gt;\r\n&lt;\/cgi&gt;\r\n\r\n&lt;tex&gt;\r\n&lt;url&gt;\/phpSimpleQuestionNL5.10\/fortex_xml_space.php&lt;\/url&gt;\r\n&lt;\/tex&gt;\r\n\r\n&lt;refer&gt;\r\n&lt;url&gt;\/phpSimpleQuestionNL5.10\/refer_status.php&lt;\/url&gt;\r\n&lt;\/refer&gt;\r\n\r\n&lt;LMSserver&gt;&lt;\/LMSserver&gt;\r\n\r\n&lt;UserID&gt;&lt;\/UserID&gt;\r\n\r\n&lt;realName&gt;&lt;\/realName&gt;\r\n\r\n&lt;record&gt;&lt;\/record&gt;\r\n\r\n\r\n&lt;q_ID&gt;$timestamp&lt;\/q_ID&gt;\r\n&lt;q_ID_e&gt;&lt;\/q_ID_e&gt;\r\n\r\n&lt;author_name&gt;College_Physics&lt;\/author_name&gt;\r\n\r\n&lt;title&gt;$xml_title&lt;\/title&gt;\r\n\r\n&lt;keyword&gt;$xml_keyword&lt;\/keyword&gt;\r\n\r\n&lt;edit&gt;\r\n&lt;where&gt;$xml_edit_where&lt;\/where&gt;\r\n&lt;when&gt;$xml_edit_when&lt;\/when&gt;\r\n&lt;\/edit&gt;\r\n\r\n&lt;phpseclibKey&gt;$keytxt&lt;\/phpseclibKey&gt;\r\n\r\n&lt;TextHeight&gt;$xml_TextHeight&lt;\/TextHeight&gt;\r\n\r\n&lt;examinationSentence&gt;\r\n$examinationSentenceStr\r\n&lt;\/examinationSentence&gt;\r\n\r\n&lt;common&gt;\r\n&lt;random&gt;\r\n&lt;state&gt;off&lt;\/state&gt;\r\n&lt;\/random&gt;\r\n&lt;languageType&gt;python&lt;\/languageType&gt;\r\n&lt;src&gt;&lt;\/src&gt;\r\n&lt;\/common&gt;\r\n\r\n\r\nend_of_quote;\r\n\r\n\r\n\r\n$operation = &lt;&lt;&lt; end_of_quote\r\n# You can use base64, np and sympy.\r\nrawmark = 'null'\r\nfeedback = 'null'\r\ntips = []\r\n#tips.append('Hello!')\r\nstatus = {}\r\n#status['statistics'] = 'no'\r\nif tans == sans:\r\n    status['coincide'] = 'yes'\r\nend_of_quote;\r\n\r\n\r\n&#9;$i = 0;\r\n&#9;$str = '';\r\n\r\n\r\n&#9;foreach ($xml-&gt;question as $q) {\r\n\r\n\r\n&#9;&#9;$i = $i + 1;\r\n\r\n&#9;&#9;$str = $str.\"&lt;question&gt;\\n\\n&lt;num&gt;\".$i.\"&lt;\/num&gt;\\n\";&#9;&#9;\r\n&#9;&#9;$str = $str.\"&lt;server&gt;http:\/\/egret.susi.oita-u.ac.jp&lt;\/server&gt;\\n\";\r\n&#9;&#9;$str = $str.\"&lt;AnswerTest&gt;\".$q-&gt;AnswerTest.\"&lt;\/AnswerTest&gt;\\n\";\r\n&#9;&#9;$str = $str.\"&lt;searchForPastAnswers&gt;yes&lt;\/searchForPastAnswers&gt;\\n\";&#9;&#9;\r\n&#9;&#9;$str = $str.\"&lt;Allotment&gt;\".$q-&gt;Allotment.\"&lt;\/Allotment&gt;\\n\";\r\n&#9;&#9;$str = $str.'&lt;size&gt;'.$q-&gt;size.\"&lt;\/size&gt;\\n\";\r\n&#9;&#9;$str = $str.\"&lt;verticalSize&gt;\".$q-&gt;verticalSize.\"&lt;\/verticalSize&gt;\\n\";\r\n&#9;&#9;$str = $str.'&lt;x&gt;'.$q-&gt;x.\"&lt;\/x&gt;\\n\";\r\n&#9;&#9;$str = $str.'&lt;y&gt;'.$q-&gt;y.\"&lt;\/y&gt;\\n\";\r\n&#9;&#9;$str = $str.\"&lt;SAns&gt;&lt;\/SAns&gt;\\n\";\r\n&#9;&#9;$str = $str.'&lt;TAns&gt;'.htmlentities((string)$q-&gt;TAns).\"&lt;\/TAns&gt;\\n\";\r\n&#9;&#9;$str = $str.'&lt;AnsTestOpt&gt;'.$q-&gt;AnsTestOpt.\"&lt;\/AnsTestOpt&gt;\\n\";\r\n&#9;&#9;$str = $str.'&lt;operation&gt;&lt;text&gt;' . htmlentities($operation) . \"&lt;\/text&gt;&lt;\/operation&gt;\\n\";\r\n&#9;&#9;$str = $str.\"&lt;\/question&gt;\\n\\n\";\r\n\r\n&#9;}\r\n\r\n&#9;$configstr = $configstr.$str.\"&lt;\/root&gt;\";\r\n\r\n&#9;return $configstr;\r\n}\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u6559\u6750\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u3092 5.10 \u306b\u3042\u3052\u305f\u306e\u3067\uff0c\u30dd\u30fc\u30bf\u30eb\u30b5\u30a4\u30c8\u306e\u30b3\u30f3\u30c6\u30f3\u30c4\u3092\u79fb\u52d5\u3057\u307e &#8230; <a class=\"more-link\" href=\"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/?p=12451\">Read More &raquo;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-12451","post","type-post","status-publish","format-standard","hentry","category-column"],"_links":{"self":[{"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/12451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=12451"}],"version-history":[{"count":9,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/12451\/revisions"}],"predecessor-version":[{"id":12708,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/12451\/revisions\/12708"}],"wp:attachment":[{"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=12451"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=12451"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/zairyo.susi.oita-u.ac.jp\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=12451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}