OSDN Git Service

ファイルに書き込む必要のないときはarray_uniqueを実行しないように
authorarino <arino>
Tue, 22 Jul 2003 05:56:49 +0000 (14:56 +0900)
committerarino <arino>
Tue, 22 Jul 2003 05:56:49 +0000 (14:56 +0900)
plugin/update_entities.inc.php

index 61ac473..0a744ce 100644 (file)
-<?php\r
-/////////////////////////////////////////////////\r
-// PukiWiki - Yet another WikiWikiWeb clone.\r
-//\r
-// $Id: update_entities.inc.php,v 1.1 2003/06/24 01:19:00 arino Exp $\r
-//\r
-\r
-// DTD¤Î¾ì½ê\r
-define('W3C_XHTML_DTD_LOCATION','http://www.w3.org/TR/xhtml1/DTD/');\r
-\r
-// ¥á¥Ã¥»¡¼¥¸ÀßÄê\r
-function plugin_update_entities_init()\r
-{\r
-       $messages = array(\r
-               '_entities_messages'=>array(\r
-                       'title_update'  => '¥­¥ã¥Ã¥·¥å¹¹¿·',\r
-                       'msg_adminpass' => '´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É',\r
-                       'btn_submit'    => '¼Â¹Ô',\r
-                       'msg_done'      => '¥­¥ã¥Ã¥·¥å¤Î¹¹¿·¤¬´°Î»¤·¤Þ¤·¤¿¡£',\r
-                       'msg_usage'     => '\r
-* ½èÍýÆâÍÆ\r
-\r
-:ʸ»ú¼ÂÂλ²¾È¤Ë¥Þ¥Ã¥Á¤¹¤ëÀµµ¬É½¸½¥Ñ¥¿¡¼¥ó¤Î¥­¥ã¥Ã¥·¥å¤ò¹¹¿·|\r
-PHP¤Î»ý¤Ä¥Æ¡¼¥Ö¥ë¤ª¤è¤ÓW3C¤ÎDTD¤ò¥¹¥­¥ã¥ó¤·¤Æ¡¢¥­¥ã¥Ã¥·¥å¤Ëµ­Ï¿¤·¤Þ¤¹¡£\r
-\r
-* ½èÍýÂоÝ\r
-¡ÖCOLOR(red){not found.}¡×¤¬É½¼¨¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï½èÍý¤µ¤ì¤Þ¤»¤ó¡£\r
--%s\r
-\r
-* ¼Â¹Ô\r
-´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¡¢[¼Â¹Ô]¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£\r
-'\r
-               )\r
-       );\r
-       set_plugin_messages($messages);\r
-}\r
-\r
-function plugin_update_entities_action()\r
-{\r
-       global $script,$post,$vars,$adminpass;\r
-       global $_entities_messages;\r
-       \r
-       if (empty($vars['action']) or empty($post['adminpass']) or md5($post['adminpass']) != $adminpass)\r
-       {\r
-               $items = plugin_update_entities_create();\r
-               $body = convert_html(sprintf($_entities_messages['msg_usage'],join("\n-",$items)));\r
-               $body .= <<<EOD\r
-<form method="POST" action="$script">\r
- <div>\r
-  <input type="hidden" name="plugin" value="update_entities" />\r
-  <input type="hidden" name="action" value="update" />\r
-  {$_entities_messages['msg_adminpass']}\r
-  <input type="password" name="adminpass" size="20" value="" />\r
-  <input type="submit" value="{$_entities_messages['btn_submit']}" />\r
- </div>\r
-</form>\r
-EOD;\r
-               return array(\r
-                       'msg'=>$_entities_messages['title_update'],\r
-                       'body'=>$body\r
-               );\r
-       }\r
-       else if ($vars['action'] == 'update')\r
-       {\r
-               plugin_update_entities_create(TRUE);\r
-               return array(\r
-                       'msg'=>$_entities_messages['title_update'],\r
-                       'body'=>$_entities_messages['msg_done']\r
-               );\r
-       }\r
-       \r
-       return array(\r
-               'msg'=>$_entities_messages['title_update'],\r
-               'body'=>$_entities_messages['err_invalid']\r
-       );\r
-}\r
-function plugin_update_entities_create($do=FALSE)\r
-{\r
-       $files = array('xhtml-lat1.ent','xhtml-special.ent','xhtml-symbol.ent');\r
-       $entities = strtr(\r
-               array_values(get_html_translation_table(HTML_ENTITIES)),\r
-               array('&'=>'',';'=>'')\r
-       );\r
-       $items = array('php:html_translation_table');\r
-       foreach ($files as $file)\r
-       {\r
-               $source = file(W3C_XHTML_DTD_LOCATION.$file);\r
-//                     or die_message('cannot receive '.W3C_XHTML_DTD_LOCATION.$file.'.');\r
-               if (!is_array($source))\r
-               {\r
-                       $items[] = "w3c:$file COLOR(red):not found.";\r
-                       continue;\r
-               }\r
-               $items[] = "w3c:$file";\r
-               if (preg_match_all('/<!ENTITY\s+([A-Za-z0-9]+)/',\r
-                       join('',$source),$matches,PREG_PATTERN_ORDER))\r
-               {\r
-                       $entities = array_merge($entities,$matches[1]);\r
-               }\r
-       }\r
-       $entities = array_unique($entities);\r
-       if (!$do)\r
-       {\r
-               return $items;\r
-       }\r
-       sort($entities,SORT_STRING);\r
-       $min = 999;\r
-       $max = 0;\r
-       foreach ($entities as $entity)\r
-       {\r
-               $len = strlen($entity);\r
-               $max = max($max,$len);\r
-               $min = min($min,$len);\r
-       }\r
-       \r
-       $pattern = "(?=[a-zA-Z0-9]\{$min,$max})".get_autolink_pattern_sub($entities,0,count($entities),0);\r
-       $fp = fopen(CACHE_DIR.'entities.dat','w')\r
-               or die_message('cannot write file '.CAHCE_DIR.'entities.dat<br />maybe permission is not writable or filename is too long');\r
-       fwrite($fp,$pattern);\r
-       fclose($fp);\r
-       \r
-       return $items;\r
-}\r
-?>\r
+<?php
+/////////////////////////////////////////////////
+// PukiWiki - Yet another WikiWikiWeb clone.
+//
+// $Id: update_entities.inc.php,v 1.2 2003/07/22 05:56:49 arino Exp $
+//
+
+// DTD¤Î¾ì½ê
+define('W3C_XHTML_DTD_LOCATION','http://www.w3.org/TR/xhtml1/DTD/');
+
+// ¥á¥Ã¥»¡¼¥¸ÀßÄê
+function plugin_update_entities_init()
+{
+       $messages = array(
+               '_entities_messages'=>array(
+                       'title_update'  => '¥­¥ã¥Ã¥·¥å¹¹¿·',
+                       'msg_adminpass' => '´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É',
+                       'btn_submit'    => '¼Â¹Ô',
+                       'msg_done'      => '¥­¥ã¥Ã¥·¥å¤Î¹¹¿·¤¬´°Î»¤·¤Þ¤·¤¿¡£',
+                       'msg_usage'     => '
+* ½èÍýÆâÍÆ
+
+:ʸ»ú¼ÂÂλ²¾È¤Ë¥Þ¥Ã¥Á¤¹¤ëÀµµ¬É½¸½¥Ñ¥¿¡¼¥ó¤Î¥­¥ã¥Ã¥·¥å¤ò¹¹¿·|
+PHP¤Î»ý¤Ä¥Æ¡¼¥Ö¥ë¤ª¤è¤ÓW3C¤ÎDTD¤ò¥¹¥­¥ã¥ó¤·¤Æ¡¢¥­¥ã¥Ã¥·¥å¤Ëµ­Ï¿¤·¤Þ¤¹¡£
+
+* ½èÍýÂоÝ
+¡ÖCOLOR(red){not found.}¡×¤¬É½¼¨¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï½èÍý¤µ¤ì¤Þ¤»¤ó¡£
+-%s
+
+* ¼Â¹Ô
+´ÉÍý¼Ô¥Ñ¥¹¥ï¡¼¥É¤òÆþÎϤ·¤Æ¡¢[¼Â¹Ô]¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£
+'
+               )
+       );
+       set_plugin_messages($messages);
+}
+
+function plugin_update_entities_action()
+{
+       global $script,$post,$vars,$adminpass;
+       global $_entities_messages;
+       
+       if (empty($vars['action']) or empty($post['adminpass']) or md5($post['adminpass']) != $adminpass)
+       {
+               $items = plugin_update_entities_create();
+               $body = convert_html(sprintf($_entities_messages['msg_usage'],join("\n-",$items)));
+               $body .= <<<EOD
+<form method="POST" action="$script">
+ <div>
+  <input type="hidden" name="plugin" value="update_entities" />
+  <input type="hidden" name="action" value="update" />
+  {$_entities_messages['msg_adminpass']}
+  <input type="password" name="adminpass" size="20" value="" />
+  <input type="submit" value="{$_entities_messages['btn_submit']}" />
+ </div>
+</form>
+EOD;
+               return array(
+                       'msg'=>$_entities_messages['title_update'],
+                       'body'=>$body
+               );
+       }
+       else if ($vars['action'] == 'update')
+       {
+               plugin_update_entities_create(TRUE);
+               return array(
+                       'msg'=>$_entities_messages['title_update'],
+                       'body'=>$_entities_messages['msg_done']
+               );
+       }
+       
+       return array(
+               'msg'=>$_entities_messages['title_update'],
+               'body'=>$_entities_messages['err_invalid']
+       );
+}
+function plugin_update_entities_create($do=FALSE)
+{
+       $files = array('xhtml-lat1.ent','xhtml-special.ent','xhtml-symbol.ent');
+       $entities = strtr(
+               array_values(get_html_translation_table(HTML_ENTITIES)),
+               array('&'=>'',';'=>'')
+       );
+       $items = array('php:html_translation_table');
+       foreach ($files as $file)
+       {
+               $source = file(W3C_XHTML_DTD_LOCATION.$file);
+//                     or die_message('cannot receive '.W3C_XHTML_DTD_LOCATION.$file.'.');
+               if (!is_array($source))
+               {
+                       $items[] = "w3c:$file COLOR(red):not found.";
+                       continue;
+               }
+               $items[] = "w3c:$file";
+               if (preg_match_all('/<!ENTITY\s+([A-Za-z0-9]+)/',
+                       join('',$source),$matches,PREG_PATTERN_ORDER))
+               {
+                       $entities = array_merge($entities,$matches[1]);
+               }
+       }
+       if (!$do)
+       {
+               return $items;
+       }
+       $entities = array_unique($entities);
+       sort($entities,SORT_STRING);
+       $min = 999;
+       $max = 0;
+       foreach ($entities as $entity)
+       {
+               $len = strlen($entity);
+               $max = max($max,$len);
+               $min = min($min,$len);
+       }
+       
+       $pattern = "(?=[a-zA-Z0-9]\{$min,$max})".get_autolink_pattern_sub($entities,0,count($entities),0);
+       $fp = fopen(CACHE_DIR.'entities.dat','w')
+               or die_message('cannot write file '.CAHCE_DIR.'entities.dat<br />maybe permission is not writable or filename is too long');
+       fwrite($fp,$pattern);
+       fclose($fp);
+       
+       return $items;
+}
+?>