4chdir(dirname(__FILE__));
5require_once
'common.php';
28 } elseif ($dec < 2048) {
29 $utf = chr(192 + (($dec - ($dec % 64)) / 64));
30 $utf .= chr(128 + ($dec % 64));
32 $utf = chr(224 + (($dec - ($dec % 4096)) / 4096));
33 $utf .= chr(128 + ((($dec % 4096) - ($dec % 64)) / 64));
34 $utf .= chr(128 + ($dec % 64));
39if ( !is_dir(
$entity_dir) )
exit(
"Fatal Error: Can't find entity directory.\n");
40if ( file_exists(
$output_file) )
exit(
"Fatal Error: output file already exists.\n");
43if ( !$dh )
exit(
"Fatal Error: Cannot read entity directory.\n");
45$entity_files = array();
46while ((
$file = readdir($dh)) !==
false) {
47 if (@
$file[0] ===
'.')
continue;
48 if (substr(strrchr(
$file,
"."), 1) !==
'ent')
continue;
49 $entity_files[] =
$file;
53if ( !$entity_files )
exit(
"Fatal Error: No entity files to parse.\n");
55$entity_table = array();
56$regexp =
'/<!ENTITY\s+([A-Za-z0-9]+)\s+"&#(?:38;#)?([0-9]+);">/';
58foreach ( $entity_files as
$file ) {
61 preg_match_all($regexp,
$contents, $matches, PREG_SET_ORDER);
62 foreach ($matches as $match) {
63 $entity_table[$match[1]] =
unichr($match[2]);
73echo
"Completed successfully.";
An exception for terminatinating execution or to throw for unit testing.
if(!is_dir( $entity_dir)) exit("Fatal Error ([A-Za-z0-9]+)\s+" &#(? foreach( $entity_files as $file) $output
if(!file_exists("$old.txt")) if( $old===$new) if(file_exists("$new.txt")) $file