{"id":199212,"date":"2025-05-03T13:21:18","date_gmt":"2025-05-03T05:21:18","guid":{"rendered":"https:\/\/server.hk\/cnblog\/199212\/"},"modified":"2025-05-03T13:21:18","modified_gmt":"2025-05-03T05:21:18","slug":"ecshop%e6%a0%a1%e9%aa%8c%e6%96%87%e4%bb%b6%e7%94%9f%e6%88%90md5%e6%96%87%e4%bb%b6%e4%bb%a3%e7%a0%81","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/199212\/","title":{"rendered":"ecshop\u6821\u9a8c\u6587\u4ef6\u751f\u6210MD5\u6587\u4ef6\u4ee3\u7801"},"content":{"rendered":"<p>&nbsp;ecshop\u6821\u9a8c\u6587\u4ef6\u751f\u6210MD5\u6587\u4ef6\u7684\u4ee3\u7801<\/p>\n<pre>\n \n \n <ol>\n  \n  \n  <li><span><span>define(<\/span><span>'ROOT_PATH'<\/span><span>,&nbsp;<\/span><span>str_replace<\/span><span>(<\/span><span>basename<\/span><span>(&nbsp;<\/span><span>__FILE__<\/span><span>),&nbsp;<\/span><span>''<\/span><span>,&nbsp;<\/span><span>str_replace<\/span><span>(<\/span><span>'\\\\',&nbsp;'<\/span><span>\/',&nbsp;<\/span><span>__FILE__<\/span><span>)));&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>ini_set<\/span><span>(<\/span><span>'max_execution_time'<\/span><span>,&nbsp;<\/span><span>'300'<\/span><span>);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span>checkfiles(<span>'.\/'<\/span><span>,&nbsp;<\/span><span>'\\.php'<\/span><span>,&nbsp;0);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>checkfiles(<span>'admin\/'<\/span><span>,&nbsp;<\/span><span>'\\.php|\\.htm|\\.js|\\.css|\\xml'<\/span><span>);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>checkfiles(<span>'api\/'<\/span><span>,&nbsp;<\/span><span>'\\.php'<\/span><span>);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>checkfiles(<span>'includes\/'<\/span><span>,&nbsp;<\/span><span>'\\.php|\\.html|\\.js'<\/span><span>,1,<\/span><span>'fckeditor'<\/span><span>);&nbsp;&nbsp;&nbsp;&nbsp;<\/span><span>\/\/fck\u4e0d\u68c0\u67e5<\/span><span>&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>checkfiles(<span>'js\/'<\/span><span>,&nbsp;<\/span><span>'\\.js|\\.css'<\/span><span>);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>checkfiles(<span>'languages\/'<\/span><span>,&nbsp;<\/span><span>'\\.php'<\/span><span>);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>checkfiles(<span>'plugins\/'<\/span><span>,&nbsp;<\/span><span>'\\.php'<\/span><span>);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>checkfiles(<span>'wap\/'<\/span><span>,&nbsp;<\/span><span>'\\.php|\\.wml'<\/span><span>);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span><span>\/*<\/span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>checkfiles('themes\/default\/',&nbsp;'\\.dwt|\\.lbi|\\.css');&nbsp;&nbsp;&nbsp;\/\/\u6a21\u677f<\/span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>checkfiles('uc_client\/',&nbsp;'\\.php',&nbsp;0);<\/span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>checkfiles('uc_client\/control\/',&nbsp;'\\.php');<\/span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>checkfiles('uc_client\/model\/',&nbsp;'\\.php');<\/span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>checkfiles('uc_client\/lib\/',&nbsp;'\\.php');<\/span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>*\/<\/span><span>&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>file_put_contents<\/span><span>(<\/span><span>'.\/admin\/ecshopfiles.md5'<\/span><span>,<\/span><span>$md5str<\/span><span>);&nbsp;&nbsp;&nbsp;<\/span><span>\/\/\u4fdd\u5b58\u6587\u4ef6\u6821\u9a8c\u4fe1\u606f<\/span><span>&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>echo<\/span><span>&nbsp;<\/span><span>\"MD5\u6587\u4ef6\u751f\u6210\u5b8c\u6210\"<\/span><span>;&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>\/**\u68c0\u67e5\u6587\u4ef6<\/span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>*&nbsp;@param&nbsp;&nbsp;string&nbsp;$currentdir&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u5f85\u68c0\u67e5\u76ee\u5f55<\/span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>*&nbsp;@param&nbsp;&nbsp;string&nbsp;$ext&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u5f85\u68c0\u67e5\u7684\u6587\u4ef6\u7c7b\u578b<\/span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>*&nbsp;@param&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;$sub&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u662f\u5426\u68c0\u67e5\u5b50\u76ee\u5f55<\/span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>*&nbsp;@param&nbsp;&nbsp;string&nbsp;$skip&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/\u4e0d\u68c0\u67e5\u7684\u76ee\u5f55\u6216\u6587\u4ef6<\/span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span><span>*\/<\/span><span>&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span><span>function<\/span><span>&nbsp;checkfiles(<\/span><span>$currentdir<\/span><span>,&nbsp;<\/span><span>$ext<\/span><span>&nbsp;=&nbsp;<\/span><span>''<\/span><span>,&nbsp;<\/span><span>$sub<\/span><span>&nbsp;=&nbsp;1,&nbsp;<\/span><span>$skip<\/span><span>&nbsp;=&nbsp;<\/span><span>''<\/span><span>)&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>{&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>global<\/span><span>&nbsp;<\/span><span>$md5data<\/span><span>,&nbsp;<\/span><span>$md5str<\/span><span>;&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>$dir<\/span><span>&nbsp;=&nbsp;@opendir(ROOT_PATH.<\/span><span>$currentdir<\/span><span>);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>$exts<\/span><span>&nbsp;=&nbsp;<\/span><span>'\/('<\/span><span>.<\/span><span>$ext<\/span><span>.<\/span><span>')$\/i'<\/span><span>;&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>$skips<\/span><span>&nbsp;=&nbsp;<\/span><span>explode<\/span><span>(<\/span><span>','<\/span><span>,&nbsp;<\/span><span>$skip<\/span><span>);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;<span>while<\/span><span>(<\/span><span>$entry<\/span><span>&nbsp;=&nbsp;@readdir(<\/span><span>$dir<\/span><span>))&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>$file<\/span><span>&nbsp;=&nbsp;<\/span><span>$currentdir<\/span><span>.<\/span><span>$entry<\/span><span>;&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>if<\/span><span>(<\/span><span>$entry<\/span><span>&nbsp;!=&nbsp;<\/span><span>'.'<\/span><span>&nbsp;&amp;&amp;&nbsp;<\/span><span>$entry<\/span><span>&nbsp;!=&nbsp;<\/span><span>'..'<\/span><span>&nbsp;&amp;&amp;&nbsp;<\/span><span>$entry<\/span><span>&nbsp;!=&nbsp;<\/span><span>'.svn'<\/span><span>&nbsp;&amp;&amp;&nbsp;(preg_match(<\/span><span>$exts<\/span><span>,&nbsp;<\/span><span>$entry<\/span><span>)&nbsp;||&nbsp;<\/span><span>$sub<\/span><span>&nbsp;&amp;&amp;&nbsp;<\/span><span>is_dir<\/span><span>(<\/span><span>$file<\/span><span>))&nbsp;&amp;&amp;&nbsp;!in_array(<\/span><span>$entry<\/span><span>,&nbsp;<\/span><span>$skips<\/span><span>))&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>if<\/span><span>(<\/span><span>$sub<\/span><span>&nbsp;&amp;&amp;&nbsp;<\/span><span>is_dir<\/span><span>(<\/span><span>$file<\/span><span>))&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;checkfiles(<span>$file<\/span><span>.<\/span><span>'\/'<\/span><span>,&nbsp;<\/span><span>$ext<\/span><span>,&nbsp;<\/span><span>$sub<\/span><span>,&nbsp;<\/span><span>$skip<\/span><span>);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>else<\/span><span>&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>if<\/span><span>(<\/span><span>$file<\/span><span>&nbsp;!=&nbsp;<\/span><span>'.\/md5.php'<\/span><span>)&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>$md5data<\/span><span>[<\/span><span>$file<\/span><span>]&nbsp;=&nbsp;md5_file(<\/span><span>$file<\/span><span>);&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span>$md5str<\/span><span>&nbsp;.=&nbsp;md5_file(<\/span><span>$file<\/span><span>).<\/span><span>'&nbsp;*'<\/span><span>.<\/span><span>$file<\/span><span>.<\/span><span>\"\\r\\n\"<\/span><span>;&nbsp;<\/span><\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;<\/span><\/li>\n  \n  \n  <li><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<\/span><\/li>\n  \n  \n  <li><span>}&nbsp;<\/span><\/li>\n \n \n <\/ol><\/pre>\n<p>\u597d\u6a21\u677f\u641c\u96c6\u8be5\uff0c\u8f6c\u8f7d\u8bf7\u6ce8\u660e\u7f51\u5740\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp;ecshop\u6821\u9a8c\u6587\u4ef6&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4925],"tags":[],"class_list":["post-199212","post","type-post","status-publish","format-standard","hentry","category-4925"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/199212","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/comments?post=199212"}],"version-history":[{"count":0,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/199212\/revisions"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=199212"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=199212"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=199212"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}