Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/mod/wiki/db/migration/lib.php
Go to the documentation of this file.
00001 <?php
00010 function wiki_ewiki_2_html($oldentry, $oldpage, $oldwiki) {
00011     global $CFG, $wiki_entry, $moodle_disable_camel_case, $ewiki_plugins, $ewiki_config, $moodle_format;
00012 
00013     $wiki_entry = $oldentry;
00014 
00015     $moodle_disable_camel_case = ($oldwiki->disablecamelcase == 1);
00016 
00017     // Block of dinamic ewiki defines
00018     wiki_set_define("EWIKI_NAME", $wiki_entry->pagename);
00019     wiki_set_define("EWIKI_DEFAULT_LANG", current_language());
00020     if ($moodle_disable_camel_case) {
00021         wiki_set_define("EWIKI_CHARS_L", "");
00022         wiki_set_define("EWIKI_CHARS_U", "");
00023     } else {
00024         wiki_set_define("EWIKI_CHARS_L", "a-z_µ¤$\337-\377");
00025         wiki_set_define("EWIKI_CHARS_U", "A-Z0-9\300-\336");
00026     }
00027 
00028     wiki_set_define("EWIKI_CHARS", wiki_get_define('EWIKI_CHARS_L') . wiki_get_define('EWIKI_CHARS_U'));
00029 
00030     require_once($CFG->dirroot . '/mod/wiki/db/migration/wiki/ewikimoodlelib.php');
00031     require_once($CFG->dirroot . '/mod/wiki/db/migration/wiki/ewiki/ewiki.php');
00032 
00033     if ($oldwiki->htmlmode == 0) {
00034         # No HTML
00035         $ewiki_config["htmlentities"] = array(); // HTML is managed by moodle
00036         $moodle_format = FORMAT_TEXT;
00037     }
00038     if ($oldwiki->htmlmode == 1) {
00039         # Safe HTML
00040         include_once($CFG->dirroot . "/mod/wiki/db/migration/wiki/ewiki/plugins/moodle/moodle_rescue_html.php");
00041         $moodle_format = FORMAT_HTML;
00042     }
00043     if ($oldwiki->htmlmode == 2) {
00044         # HTML Only
00045         $moodle_format = FORMAT_HTML;
00046         $ewiki_use_editor = 1;
00047         $ewiki_config["htmlentities"] = array(); // HTML is allowed
00048         $ewiki_config["wiki_link_regex"] = "\007 [!~]?(
00049                     \#?\[[^<>\[\]\n]+\] |
00050                     \^[-" .
00051             wiki_get_define('EWIKI_CHARS_U') . wiki_get_define('EWIKI_CHARS_L') . "]{3,} |
00052                     \b([\w]{3,}:)*([" .
00053             wiki_get_define('EWIKI_CHARS_U') . "]+[" . wiki_get_define('EWIKI_CHARS_L') . "]+){2,}\#?[\w\d]* |
00054                     \w[-_.+\w]+@(\w[-_\w]+[.])+\w{2,}   ) \007x";
00055     }
00056 
00057     $content = ewiki_format($oldpage->content);
00058 
00059     return $content;
00060 }
00061 
00062 function wiki_set_define($key, $value) {
00063     global $ewikidefines;
00064 
00065     $ewikidefines[$key] = $value;
00066 }
00067 
00068 function wiki_get_define($key) {
00069     global $ewikidefines;
00070 
00071     return $ewikidefines[$key];
00072 }
00073 
00074 function ewiki_mime_magic($binary_data) {
00075     $mime_magic_data = array(
00076         array(0, 2, 0, "\x06\x02", "application/x-alan-adventure-game"),
00077         array(0, 4, 0, "TADS", "application/x-tads-game"),
00078         array(0, 2, 0, "\x01\x10", "application/x-executable-file"),
00079         array(0, 2, 0, "\x01\x11", "application/x-executable-file"),
00080         array(0, 2, 0, "\x01ƒ", "application/x-executable-file"),
00081         array(0, 5, 0, "Core\001", "application/x-executable-file"),
00082         array(0, 22, 0, "AMANDA: TAPESTART DATE", "application/x-amanda-header"),
00083         array(0, 2, 0xfff0, 0xf0ff, "audio/mpeg"),
00084         array(4, 2, 0, "¯\x11", "video/fli"),
00085         array(4, 2, 0, "¯\x12", "video/flc"),
00086         array(0, 4, 0, "MOVI", "video/x-sgi-movie"),
00087         array(4, 4, 0, "moov", "video/quicktime"),
00088         array(4, 4, 0, "mdat", "video/quicktime"),
00089         array(0, 18, 0, "FiLeStArTfIlEsTaRt", "text/x-apple-binscii"),
00090         array(0, 3, 0, "\x0aGL", "application/data"),
00091         array(0, 2, 0, "\x76\xff", "application/data"),
00092         array(0, 6, 0, "NuFile", "application/data"),
00093         array(0, 6, 0, "N\xf5F\xe9l\xe5", "application/data"),
00094         array(0, 4, 0, "\x00\x16\x05\x00", "application/data"),
00095         array(0, 4, 0, "\x07\x16\x05\x00", "application/data"),
00096         array(257, 6, 0, "ustar\0", "application/x-tar"),
00097         array(257, 8, 0, "ustar\040\040\0", "application/x-gtar"),
00098         array(0, 2, 0, "qÇ", "application/x-cpio"),
00099         array(0, 2, 0, "Çq", "application/x-bcpio"),
00100         array(0, 6, 0, "070707", "application/x-cpio"),
00101         array(0, 6, 0, "070701", "application/x-cpio"),
00102         array(0, 6, 0, "070702", "application/x-cpio"),
00103         array(0, 2, 0, "ÿm", "application/data"),
00104         array(0, 2, 0, "ÿe", "application/data"),
00105         array(0, 5, 0, "=<ar>", "application/x-ar"),
00106         array(0, 19, 0, "!<arch>\n__________E", "application/x-ar"),
00107         array(0, 3, 0, "-h-", "application/data"),
00108         array(0, 7, 0, "!<arch>", "application/x-ar"),
00109         array(0, 4, 0, "<ar>", "application/x-ar"),
00110         array(0, 4, 0, ">ra<", "application/x-ar"),
00111         array(0, 4, 0, "!<ar", "application/x-ar"),
00112         array(0, 4, 0, "\x00\x03ݒ", "application/data"),
00113         array(0, 4, 0, "\x00\x03ݔ", "application/data"),
00114         array(0, 4, 0x8080ffff, 0x81a, "application/x-arc"),
00115         array(0, 4, 0x8080ffff, 0x91a, "application/x-arc"),
00116         array(0, 4, 0x8080ffff, 0x21a, "application/x-arc"),
00117         array(0, 4, 0x8080ffff, 0x31a, "application/x-arc"),
00118         array(0, 4, 0x8080ffff, 0x41a, "application/x-arc"),
00119         array(0, 4, 0x8080ffff, 0x61a, "application/x-arc"),
00120         array(0, 8, 0, "\032archive", "application/data"),
00121         array(0, 2, 0, "ê`", "application/x-arj"),
00122         array(0, 4, 0, "HPAK", "application/data"),
00123         array(0, 8, 0, "\351,\001JAM\   ", "application/data"),
00124         array(2, 5, 0, "-lh0-", "application/x-lha"),
00125         array(2, 5, 0, "-lh1-", "application/x-lha"),
00126         array(2, 5, 0, "-lz4-", "application/x-lha"),
00127         array(2, 5, 0, "-lz5-", "application/x-lha"),
00128         array(2, 5, 0, "-lzs-", "application/x-lha"),
00129         array(2, 5, 0, "-lh\40-", "application/x-lha"),
00130         array(2, 5, 0, "-lhd-", "application/x-lha"),
00131         array(2, 5, 0, "-lh2-", "application/x-lha"),
00132         array(2, 5, 0, "-lh3-", "application/x-lha"),
00133         array(2, 5, 0, "-lh4-", "application/x-lha"),
00134         array(2, 5, 0, "-lh5-", "application/x-lha"),
00135         array(0, 4, 0, "Rar!", "application/x-rar"),
00136         array(0, 4, 0, "SQSH", "application/data"),
00137         array(0, 4, 0, "UC2\x1a", "application/data"),
00138         array(0, 4, 0, "PK\003\004", "application/zip"),
00139         array(20, 4, 0, "ýħÜ", "application/x-zoo"),
00140         array(10, 25, 0, "# This is a shell archive", "application/x-shar"),
00141         array(0, 4, 0, "*STA", "application/data"),
00142         array(0, 4, 0, "2278", "application/data"),
00143         array(0, 2, 0, "p\x01", "application/x-executable-file"),
00144         array(0, 2, 0, "q\x01", "application/x-executable-file"),
00145         array(0, 5, 0, "\000\004\036\212\200", "application/core"),
00146         array(0, 4, 0, ".snd", "audio/basic"),
00147         array(0, 4, 0, "\x00ds.", "audio/basic"),
00148         array(0, 4, 0, "MThd", "audio/midi"),
00149         array(0, 4, 0, "CTMF", "audio/x-cmf"),
00150         array(0, 3, 0, "SBI", "audio/x-sbi"),
00151         array(0, 19, 0, "Creative Voice File", "audio/x-voc"),
00152         array(0, 4, 0, "KRTN", "audio/x-multitrack"),
00153         array(0, 4, 0, "RIFF", "audio/x-wav"),
00154         array(0, 4, 0, "EMOD", "audio/x-emod"),
00155         array(0, 4, 0, "ýar.", "audio/x-pn-realaudio"),
00156         array(0, 3, 0, "MTM", "audio/x-multitrack"),
00157         array(0, 2, 0, "if", "audio/x-669-mod"),
00158         array(0, 3, 0, "FAR", "audio/mod"),
00159         array(0, 5, 0, "MAS_U", "audio/x-multimate-mod"),
00160         array(0x2c, 4, 0, "SCRM", "audio/x-st3-mod"),
00161         array(0, 22, 0, "GF1PATCH110\0ID#000002\0", "audio/x-gus-patch"),
00162         array(0, 22, 0, "GF1PATCH100\0ID#000002\0", "audio/x-gus-patch"),
00163         array(0, 2, 0, "JN", "audio/x-669-mod"),
00164         array(0, 4, 0, "UN05", "audio/x-mikmod-uni"),
00165         array(21, 8, 0, "!SCREAM!", "audio/x-st2-mod"),
00166         array(1080, 4, 0, "M.K.", "audio/x-protracker-mod"),
00167         array(1080, 4, 0, "M!K!", "audio/x-protracker-mod"),
00168         array(1080, 4, 0, "FLT4", "audio/x-startracker-mod"),
00169         array(1080, 4, 0, "4CHN", "audio/x-fasttracker-mod"),
00170         array(1080, 4, 0, "6CHN", "audio/x-fasttracker-mod"),
00171         array(1080, 4, 0, "8CHN", "audio/x-fasttracker-mod"),
00172         array(1080, 4, 0, "CD81", "audio/x-oktalyzer-mod"),
00173         array(1080, 4, 0, "OKTA", "audio/x-oktalyzer-mod"),
00174         array(1080, 4, 0, "16CN", "audio/x-taketracker-mod"),
00175         array(1080, 4, 0, "32CN", "audio/x-taketracker-mod"),
00176         array(0, 3, 0, "TOC", "audio/x-toc"),
00177         array(0, 2, 0, "\x07\x01", "application/x-executable-file"),
00178         array(0, 2, 0, "\x01\x06", "application/x-executable-file"),
00179         array(0, 2, 0, "\x06\x01", "application/x-executable-file"),
00180         array(0, 2, 0, "//", "text/cpp"),
00181         array(0, 5, 0, "\\1cw ", "application/data"),
00182         array(0, 4, 0, "\\1cw", "application/data"),
00183         array(0, 4, 0xffffff00, 0x140185, "application/data"),
00184         array(0, 4, 0xffffff00, 0xcb0185, "application/data"),
00185         array(0, 2, 0, "\x01}", "application/x-executable-file"),
00186         array(0, 2, 0, "\x01", "application/x-executable-file"),
00187         array(4, 4, 0, "pipe", "application/data"),
00188         array(4, 4, 0, "prof", "application/data"),
00189         array(0, 9, 0, "#!/bin/sh", "application/x-sh"),
00190         array(0, 10, 0, "#! /bin/sh", "application/x-sh"),
00191         array(0, 11, 0, "#!\   /bin/sh", "application/x-sh"),
00192         array(0, 10, 0, "#!/bin/csh", "application/x-csh"),
00193         array(0, 11, 0, "#! /bin/csh", "application/x-csh"),
00194         array(0, 12, 0, "#!\   /bin/csh", "application/x-csh"),
00195         array(0, 10, 0, "#!/bin/ksh", "application/x-ksh"),
00196         array(0, 11, 0, "#! /bin/ksh", "application/x-ksh"),
00197         array(0, 12, 0, "#!\   /bin/ksh", "application/x-ksh"),
00198         array(0, 17, 0, "#!/usr/local/tcsh", "application/x-csh"),
00199         array(0, 21, 0, "#!/usr/local/bin/tcsh", "application/x-csh"),
00200         array(0, 22, 0, "#! /usr/local/bin/tcsh", "application/x-csh"),
00201         array(0, 23, 0, "#!\   /usr/local/bin/tcsh", "application/x-csh"),
00202         array(0, 20, 0, "#!/usr/local/bin/zsh", "application/x-zsh"),
00203         array(0, 21, 0, "#! /usr/local/bin/zsh", "application/x-zsh"),
00204         array(0, 22, 0, "#!\   /usr/local/bin/zsh", "application/x-zsh"),
00205         array(0, 20, 0, "#!/usr/local/bin/ash", "application/x-sh"),
00206         array(0, 21, 0, "#! /usr/local/bin/ash", "application/x-zsh"),
00207         array(0, 22, 0, "#!\   /usr/local/bin/ash", "application/x-zsh"),
00208         array(0, 19, 0, "#!/usr/local/bin/ae", "text/script"),
00209         array(0, 20, 0, "#! /usr/local/bin/ae", "text/script"),
00210         array(0, 21, 0, "#!\   /usr/local/bin/ae", "text/script"),
00211         array(0, 11, 0, "#!/bin/nawk", "application/x-awk"),
00212         array(0, 12, 0, "#! /bin/nawk", "application/x-awk"),
00213         array(0, 13, 0, "#!\   /bin/nawk", "application/x-awk"),
00214         array(0, 15, 0, "#!/usr/bin/nawk", "application/x-awk"),
00215         array(0, 16, 0, "#! /usr/bin/nawk", "application/x-awk"),
00216         array(0, 17, 0, "#!\   /usr/bin/nawk", "application/x-awk"),
00217         array(0, 21, 0, "#!/usr/local/bin/nawk", "application/x-awk"),
00218         array(0, 22, 0, "#! /usr/local/bin/nawk", "application/x-awk"),
00219         array(0, 23, 0, "#!\   /usr/local/bin/nawk", "application/x-awk"),
00220         array(0, 11, 0, "#!/bin/gawk", "application/x-awk"),
00221         array(0, 12, 0, "#! /bin/gawk", "application/x-awk"),
00222         array(0, 13, 0, "#!\   /bin/gawk", "application/x-awk"),
00223         array(0, 15, 0, "#!/usr/bin/gawk", "application/x-awk"),
00224         array(0, 16, 0, "#! /usr/bin/gawk", "application/x-awk"),
00225         array(0, 17, 0, "#!\   /usr/bin/gawk", "application/x-awk"),
00226         array(0, 21, 0, "#!/usr/local/bin/gawk", "application/x-awk"),
00227         array(0, 22, 0, "#! /usr/local/bin/gawk", "application/x-awk"),
00228         array(0, 23, 0, "#!\   /usr/local/bin/gawk", "application/x-awk"),
00229         array(0, 10, 0, "#!/bin/awk", "application/x-awk"),
00230         array(0, 11, 0, "#! /bin/awk", "application/x-awk"),
00231         array(0, 12, 0, "#!\   /bin/awk", "application/x-awk"),
00232         array(0, 14, 0, "#!/usr/bin/awk", "application/x-awk"),
00233         array(0, 15, 0, "#! /usr/bin/awk", "application/x-awk"),
00234         array(0, 16, 0, "#!\   /usr/bin/awk", "application/x-awk"),
00235         array(0, 5, 0, "BEGIN", "application/x-awk"),
00236         array(0, 11, 0, "#!/bin/perl", "application/x-perl"),
00237         array(0, 12, 0, "#! /bin/perl", "application/x-perl"),
00238         array(0, 13, 0, "#!\   /bin/perl", "application/x-perl"),
00239         array(0, 20, 0, "eval \"exec /bin/perl", "application/x-perl"),
00240         array(0, 15, 0, "#!/usr/bin/perl", "application/x-perl"),
00241         array(0, 16, 0, "#! /usr/bin/perl", "application/x-perl"),
00242         array(0, 17, 0, "#!\   /usr/bin/perl", "application/x-perl"),
00243         array(0, 24, 0, "eval \"exec /usr/bin/perl", "application/x-perl"),
00244         array(0, 21, 0, "#!/usr/local/bin/perl", "application/x-perl"),
00245         array(0, 22, 0, "#! /usr/local/bin/perl", "application/x-perl"),
00246         array(0, 23, 0, "#!\   /usr/local/bin/perl", "application/x-perl"),
00247         array(0, 30, 0, "eval \"exec /usr/local/bin/perl", "application/x-perl"),
00248         array(0, 9, 0, "#!/bin/rc", "text/script"),
00249         array(0, 10, 0, "#! /bin/rc", "text/script"),
00250         array(0, 11, 0, "#!\   /bin/rc", "text/script"),
00251         array(0, 11, 0, "#!/bin/bash", "application/x-sh"),
00252         array(0, 12, 0, "#! /bin/bash", "application/x-sh"),
00253         array(0, 13, 0, "#!\   /bin/bash", "application/x-sh"),
00254         array(0, 21, 0, "#!/usr/local/bin/bash", "application/x-sh"),
00255         array(0, 22, 0, "#! /usr/local/bin/bash", "application/x-sh"),
00256         array(0, 23, 0, "#!\   /usr/local/bin/bash", "application/x-sh"),
00257         array(0, 4, 0, "#! /", "text/script"),
00258         array(0, 5, 0, "#!\   /", "text/script"),
00259         array(0, 3, 0, "#!/", "text/script"),
00260         array(0, 3, 0, "#! ", "text/script"),
00261         array(0, 2, 0, "\037\235", "application/compress"),
00262         array(0, 2, 0, "\037\213", "application/x-gzip"),
00263         array(0, 2, 0, "\037\036", "application/data"),
00264         array(0, 2, 0, "\x1f\x1f", "application/data"),
00265         array(0, 2, 0, "\x1fÿ", "application/data"),
00266         array(0, 2, 0, "\377\037", "application/data"),
00267         array(0, 2, 0, "Ë\x05", "application/data"),
00268         array(0, 3, 0, "BZh", "application/x-bzip2"),
00269         array(0, 2, 0, "ÿv", "application/data"),
00270         array(0, 2, 0, "þv", "application/data"),
00271         array(0, 2, 0, "ýv", "application/x-lzh"),
00272         array(0, 2, 0, "\037\237", "application/data"),
00273         array(0, 2, 0, "\037\236", "application/data"),
00274         array(0, 2, 0, "\037\240", "application/data"),
00275         array(0, 2, 0, "BZ", "application/x-bzip"),
00276         array(0, 9, 0, "\x89\x4c\x5a\x4f\x00\x0d\x0a\x1a\x0a", "application/data"),
00277         array(0, 4, 0, "W\x12\x01\x00", "application/core"),
00278         array(0, 4, 0, "ΚW\x13", "application/x-gdbm"),
00279         array(0, 4, 0, "\x13WšÎ", "application/x-gdbm"),
00280         array(0, 4, 0, "GDBM", "application/x-gdbm"),
00281         array(0, 4, 0, "a\x15\x06\x00", "application/x-db"),
00282         array(0, 4, 0, "b1\x05\x00", "application/x-db"),
00283         array(0, 23, 0, "=<list>\n<protocol bbn-m", "application/data"),
00284         array(0, 5, 0, "diff ", "text/x-patch"),
00285         array(0, 4, 0, "*** ", "text/x-patch"),
00286         array(0, 8, 0, "Only in ", "text/x-patch"),
00287         array(0, 23, 0, "Common subdirectories: ", "text/x-patch"),
00288         array(0, 19, 0, "!<arch>\n________64E", "application/data"),
00289         array(0, 2, 0, "\x01ˆ", "application/x-executable-file"),
00290         array(0, 2, 0, "\x01", "application/x-object-file"),
00291         array(0, 3, 0, "\377\377\177", "application/data"),
00292         array(0, 3, 0, "\377\377\174", "application/data"),
00293         array(0, 3, 0, "\377\377\176", "application/data"),
00294         array(0, 3, 0, "\033c\033", "application/data"),
00295         array(0, 4, 0, "\x00\x12և", "image/x11"),
00296         array(0, 8, 0, "!<PDF>!\n", "application/x-prof"),
00297         array(0, 2, 0, "\x05\x01", "application/x-locale"),
00298         array(0, 4, 0, "\177ELF", "application/x-executable-file"),
00299         array(0, 2, 0, "\x01T", "application/data"),
00300         array(0, 2, 0, "\x01U", "application/x-executable-file"),
00301         array(0x438, 2, 0, "ïS", "application/x-linux-ext2fs"),
00302         array(0, 4, 0, "\366\366\366\366", "application/x-pc-floppy"),
00303         array(0774, 2, 0, "¾Ú", "application/data"),
00304         array(0x1FE, 2, 0, "ªU", "application/data"),
00305         array(0x410, 2, 0, "\x13", "application/x-filesystem"),
00306         array(0x410, 2, 0, "\x13", "application/x-filesystem"),
00307         array(0x410, 2, 0, "\x24h", "application/x-filesystem"),
00308         array(0x410, 2, 0, "\x24x", "application/x-filesystem"),
00309         array(0, 9, 0, "-rom1fs-\0", "application/x-filesystem"),
00310         array(0, 4, 0, "\x1b\x03\x136", "application/x-bootable"),
00311         array(0x18b, 4, 0, "OS/2", "application/x-bootable"),
00312         array(0, 4, 0, "FONT", "font/x-vfont"),
00313         array(0, 2, 0, "\x01\x1e", "font/x-vfont"),
00314         array(0, 2, 0, "\x1e\x01", "font/x-vfont"),
00315         array(0, 18, 0, "%!PS-AdobeFont-1.0", "font/type1"),
00316         array(6, 18, 0, "%!PS-AdobeFont-1.0", "font/type1"),
00317         array(0, 10, 0, "STARTFONT\040", "font/x-bdf"),
00318         array(0, 4, 0, "\001fcp", "font/x-pcf"),
00319         array(0, 5, 0, "D1.0\015", "font/x-speedo"),
00320         array(0, 3, 0, "flf", "font/x-figlet"),
00321         array(0, 3, 0, "flc", "application/x-font"),
00322         array(0, 4, 0, "\x19Y\x02\x14", "font/x-libgrx"),
00323         array(0, 4, 0, "NOFÿ", "font/x-dos"),
00324         array(7, 4, 0, "AGE\x00", "font/x-dos"),
00325         array(7, 4, 0, "DIV\x00", "font/x-dos"),
00326         array(0, 10, 0, "<MakerFile", "application/x-framemaker"),
00327         array(0, 8, 0, "<MIFFile", "application/x-framemaker"),
00328         array(0, 16, 0, "<MakerDictionary", "application/x-framemaker"),
00329         array(0, 16, 0, "<MakerScreenFont", "font/x-framemaker"),
00330         array(0, 4, 0, "<MML", "application/x-framemaker"),
00331         array(0, 9, 0, "<BookFile", "application/x-framemaker"),
00332         array(0, 6, 0, "<Maker", "application/x-framemaker"),
00333         array(0, 4, 0377777777, 0x860107, "application/x-executable-file"),
00334         array(0, 4, 0377777777, 0x860108, "application/x-executable-file"),
00335         array(0, 4, 0377777777, 0x86010b, "application/x-executable-file"),
00336         array(0, 4, 0377777777, 0x8600cc, "application/x-executable-file"),
00337         array(7, 22, 0, "\357\020\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", "application/core"),
00338         array(0, 4, 0, "LDHi", "application/data"),
00339         array(0, 13, 0, "GIMP Gradient", "application/x-gimp-gradient"),
00340         array(0, 8, 0, "gimp xcf", "application/x-gimp-image"),
00341         array(20, 4, 0, "GPAT", "application/x-gimp-pattern"),
00342         array(20, 4, 0, "GIMP", "application/x-gimp-brush"),
00343         array(0, 4, 0, "\336\22\4\225", "application/x-locale"),
00344         array(0, 4, 0, "\225\4\22\336", "application/x-locale"),
00345         array(0, 2, 0, "—\x01", "application/x-executable-file"),
00346         array(0, 2, 0, "”\x01", "application/x-executable-file"),
00347         array(0, 5, 0, "\000\001\000\000\000", "font/ttf"),
00348         array(0, 4, 0, "\x0a\x0f\x08\x0e", "application/data"),
00349         array(0, 4, 0, "\x0f\x0a\x0e\x08", "application/data"),
00350         array(0, 4, 0, "\x08\x0e\x0a\x0f", "application/data"),
00351         array(0, 4, 0, "\x0e\x08\x0f\x0a", "application/data"),
00352         array(0, 4, 0, "\x06\x01\x10\x02", "application/x-object-file"),
00353         array(0, 4, 0, "\x07\x01\x10\x02", "application/x-executable-file"),
00354         array(0, 4, 0, "\x08\x01\x10\x02", "application/x-executable-file"),
00355         array(0, 4, 0, "\x0b\x01\x10\x02", "application/x-executable-file"),
00356         array(0, 4, 0, "\x0e\x01\x10\x02", "application/x-library-file"),
00357         array(0, 4, 0, "\x0d\x01\x10\x02", "application/x-library-file"),
00358         array(0, 4, 0, "\x06\x01\x14\x02", "application/x-object-file"),
00359         array(0, 4, 0, "\x07\x01\x14\x02", "application/x-executable-file"),
00360         array(0, 4, 0, "\x08\x01\x14\x02", "application/x-executable-file"),
00361         array(0, 4, 0, "\x0b\x01\x14\x02", "application/x-executable-file"),
00362         array(0, 4, 0, "\x0e\x01\x14\x02", "application/x-library-file"),
00363         array(0, 4, 0, "\x0d\x01\x14\x02", "application/x-object-file"),
00364         array(0, 4, 0, "\x06\x01\x0b\x02", "application/x-object-file"),
00365         array(0, 4, 0, "\x07\x01\x0b\x02", "application/x-executable-file"),
00366         array(0, 4, 0, "\x08\x01\x0b\x02", "application/x-executable-file"),
00367         array(0, 4, 0, "\x0b\x01\x0b\x02", "application/x-executable-file"),
00368         array(0, 4, 0, "\x0e\x01\x0b\x02", "application/x-library-file"),
00369         array(0, 4, 0, "\x0d\x01\x0b\x02", "application/x-library-file"),
00370         array(0, 4, 0, "ra<!", "application/x-ar"),
00371         array(0, 4, 0, "\x02\x08\x01\x06", "application/x-executable-file"),
00372         array(0, 4, 0, "\x02\x08\x01\x07", "application/x-executable-file"),
00373         array(0, 4, 0, "\x02\x08\x01\x08", "application/x-executable-file"),
00374         array(0, 4, 0, "\x08\x01\x0c\x02", "application/x-executable-file"),
00375         array(0, 4, 0, "\x07\x01\x0c\x02", "application/x-executable-file"),
00376         array(0, 4, 0, "\x0b\x01\x0c\x02", "application/x-executable-file"),
00377         array(0, 4, 0, "\x06\x01\x0c\x02", "application/x-executable-file"),
00378         array(0, 4, 0, "\x08\x01\x0a\x02", "application/x-executable-file"),
00379         array(0, 4, 0, "\x07\x01\x0a\x02", "application/x-executable-file"),
00380         array(0, 4, 0, "\x0e\x01\x0c\x02", "application/x-library-file"),
00381         array(0, 4, 0, "\x0d\x01\x0c\x02", "application/x-library-file"),
00382         array(0, 4, 0, "\x02\x0aÿe", "application/x-library-file"),
00383         array(0, 4, 0, "\x02\x0cÿe", "application/x-library-file"),
00384         array(0, 4, 0, "\x02\x08ÿe", "application/x-library-file"),
00385         array(0, 4, 0, "\x01X!¦", "application/core"),
00386         array(0, 4, 0, "M§îè", "font/x-hp-windows"),
00387         array(0, 10, 0, "Bitmapfile", "image/unknown"),
00388         array(0, 4, 0, "\x02\x0c\x01\x0c", "application/x-lisp"),
00389         array(0, 8, 0, "msgcat01", "application/x-locale"),
00390         array(0, 2, 0, "P1", "image/x-portable-bitmap"),
00391         array(0, 2, 0, "P2", "image/x-portable-graymap"),
00392         array(0, 2, 0, "P3", "image/x-portable-pixmap"),
00393         array(0, 2, 0, "P4", "image/x-portable-bitmap"),
00394         array(0, 2, 0, "P5", "image/x-portable-graymap"),
00395         array(0, 2, 0, "P6", "image/x-portable-pixmap"),
00396         array(0, 4, 0, "IIN1", "image/tiff"),
00397         array(0, 4, 0, "MM\x00\x2a", "image/tiff"),
00398         array(0, 4, 0, "II\x2a\x00", "image/tiff"),
00399         array(0, 4, 0, "\x89PNG", "image/x-png"),
00400         array(1, 3, 0, "PNG", "image/x-png"),
00401         array(0, 4, 0, "GIF8", "image/gif"),
00402         array(0, 4, 0, "\361\0\100\273", "image/x-cmu-raster"),
00403         array(0, 2, 0, "Øÿ", "image/jpeg"),
00404         array(0, 4, 0, "hsi1", "image/x-jpeg-proprietary"),
00405         array(0, 2, 0, "BM", "image/x-bmp"),
00406         array(0, 2, 0, "IC", "image/x-ico"),
00407         array(0, 4, 0, "•j¦Y", "x/x-image-sun-raster"),
00408         array(0, 2, 0, "Ú\x01", "x/x-image-sgi"),
00409         array(2048, 7, 0, "PCD_IPI", "x/x-photo-cd-pack-file"),
00410         array(0, 7, 0, "PCD_OPA", "x/x-photo-cd-overfiew-file"),
00411         array(0, 2, 0, "\x01H", "application/x-executable-file"),
00412         array(0, 2, 0, "\x01I", "application/x-executable-file"),
00413         array(0, 2, 0, "\x01J", "application/x-executable-file"),
00414         array(0, 2, 0, "\x01R", "application/x-executable-file"),
00415         array(0, 2, 0, "\x01L", "application/x-executable-file"),
00416         array(0, 2, 0, "\x046", "font/linux-psf"),
00417         array(0, 4, 0, "FFIL", "font/ttf"),
00418         array(65, 4, 0, "FFIL", "font/ttf"),
00419         array(0, 4, 0, "LWFN", "font/type1"),
00420         array(65, 4, 0, "LWFN", "font/type1"),
00421         array(0, 12, 0, "Return-Path:", "message/rfc822"),
00422         array(0, 5, 0, "Path:", "message/news"),
00423         array(0, 5, 0, "Xref:", "message/news"),
00424         array(0, 5, 0, "From:", "message/rfc822"),
00425         array(0, 7, 0, "Article", "message/news"),
00426         array(0, 5, 0, "BABYL", "message/x-gnu-rmail"),
00427         array(0, 9, 0, "Received:", "message/rfc822"),
00428         array(0, 2, 0, "MZ", "application/x-ms-dos-executable"),
00429         array(2080, 27, 0, "Microsoft Word 6.0 Document", "text/vnd.ms-word"),
00430         array(2080, 26, 0, "Documento Microsoft Word 6", "text/vnd.ms-word"),
00431         array(2112, 9, 0, "MSWordDoc", "text/vnd.ms-word"),
00432         array(0, 5, 0, "PO^Q`", "text/vnd.ms-word"),
00433         array(2080, 29, 0, "Microsoft Excel 5.0 Worksheet", "application/vnd.ms-excel"),
00434         array(2114, 5, 0, "Biff5", "application/vnd.ms-excel"),
00435         array(1, 3, 0, "WPC", "text/vnd.wordperfect"),
00436         array(0, 4, 0377777777, 0x7018600, "NetBSD/i386"),
00437         array(0, 4, 0377777777, 0x7018700, "NetBSD/m68k"),
00438         array(0, 4, 0377777777, 0x7018800, "NetBSD/m68k4k"),
00439         array(0, 4, 0377777777, 0x7018900, "NetBSD/ns32532"),
00440         array(0, 4, 0377777777, 0x7018a00, "NetBSD/sparc"),
00441         array(0, 4, 0377777777, 0x7018b00, "NetBSD/pmax"),
00442         array(0, 4, 0377777777, 0x7018c00, "NetBSD/vax"),
00443         array(0, 4, 0377777777, 0x7018e00, "NetBSD/mips"),
00444         array(0, 4, 0377777777, 0x7018f00, "NetBSD/arm32"),
00445         array(0, 16, 0, "StartFontMetrics", "font/x-sunos-news"),
00446         array(0, 9, 0, "StartFont", "font/x-sunos-news"),
00447         array(0, 4, 0, "D)z\x13", "font/x-sunos-news"),
00448         array(0, 4, 0, "G)z\x13", "font/x-sunos-news"),
00449         array(0, 4, 0, "P)z\x13", "font/x-sunos-news"),
00450         array(0, 4, 0, "Q)z\x13", "font/x-sunos-news"),
00451         array(8, 4, 0, "E+z\x13", "font/x-sunos-news"),
00452         array(8, 4, 0, "H+z\x13", "font/x-sunos-news"),
00453         array(0, 2, 0, "%!", "application/postscript"),
00454         array(0, 3, 0, "\004%!", "application/postscript"),
00455         array(0, 3, 0, "\033E\033", "image/x-pcl-hp"),
00456         array(0, 14, 0, "<!DOCTYPE HTML", "text/html"),
00457         array(0, 14, 0, "<!doctype html", "text/html"),
00458         array(0, 5, 0, "<HEAD", "text/html"),
00459         array(0, 5, 0, "<head", "text/html"),
00460         array(0, 6, 0, "<TITLE", "text/html"),
00461         array(0, 6, 0, "<title", "text/html"),
00462         array(0, 5, 0, "<html", "text/html"),
00463         array(0, 5, 0, "<HTML", "text/html"),
00464         array(0, 2, 0, "\367\203", "font/x-tex"),
00465         array(0, 2, 0, "\367\131", "font/x-tex"),
00466         array(0, 2, 0, "\367\312", "font/x-tex"),
00467         array(2, 2, 0, "\000\021", "font/x-tex-tfm"),
00468         array(2, 2, 0, "\000\022", "font/x-tex-tfm"),
00469         array('>2', 2, 0, "º¾", "application/java"),
00470         array(8, 4, 0, "AIFF", "audio/x-aiff"),
00471         array(8, 4, 0, "AIFC", "audio/x-aiff"),
00472         array(8, 4, 0, "8SVX", "audio/x-aiff"),
00473         array('>8', 4, 0, "WAVE", "audio/x-wav"),
00474         array('>8', 3, 0, "AVI", "video/x-msvideo"),
00475         array(0, 3, 0, "ID3", "audio/mpeg"),
00476         array(0, 4, 0, "OggS", "audio/x-ogg"),
00477         array(0, 6, 0, "/* XPM", "image/x-xpm"),
00478         array(16, 2, 0, "==", "image/x-3ds"),
00479         array(0, 11, 0, "#!/bin/tcsh", "application/x-shellscript"),
00480         array(0, 12, 0, "#! /bin/tcsh", "application/x-shellscript"),
00481         array(0, 18, 0, "#! /usr/local/tcsh", "application/x-shellscript"),
00482         array('>8', 6, 0, "debian", "application/x-debian-package"),
00483         array('>2', 2, 0, "Ûî", "application/x-rpm"),
00484         array(2, 5, 0, "-lh -", "application/x-lha"),
00485         array(2, 5, 0, "-lh6-", "application/x-lha"),
00486         array(2, 5, 0, "-lh7-", "application/x-lha"),
00487         array(0, 15, 0, "<MakerScreenFon", "application/x-frame"),
00488         array(0, 5, 0, "<Book", "application/x-frame"),
00489         array(0, 3, 0, "<h1", "text/html"),
00490         array(0, 3, 0, "<H1", "text/html"),
00491         array(0, 14, 0, "<!doctype HTML", "text/html"),
00492         array(0, 2, 0, "MM", "image/tiff"),
00493         array(0, 2, 0, "II", "image/tiff"),
00494         array(0, 6, 0, "GIF94z", "image/unknown"),
00495         array(0, 6, 0, "FGF95a", "image/unknown"),
00496         array(0, 3, 0, "PBF", "image/unknown"),
00497         array(0, 3, 0, "GIF", "image/gif"),
00498         array(0, 4, 0, "\376\067\0\043", "application/msword"),
00499         array(0, 6, 0, "\320\317\021\340\241\261", "application/msword"),
00500         array(0, 6, 0, "\333\245-\0\0\0", "application/msword"),
00501         array(0, 2, 0, "\x02÷", "application/x-dvi"),
00502         array(0, 2, 0, "¯\x11", "video/fli"),
00503         array(0, 2, 0, "¯\x12", "video/flc"),
00504         array('>8', 4, 0, "AVI ", "video/avi"),
00505         array(0, 1, 0, "\x01", "video/unknown"),
00506         array(0, 1, 0, "\x02", "video/unknown"),
00507         array(0, 19, 0, "[KDE Desktop Entry]", "application/x-kdelnk"),
00508         array(0, 18, 0, "\# KDE Config File", "application/x-kdelnk"),
00509         array(0, 7, 0, "\# xmcd", "text/xmcd"),
00510         array(0, 4, 0, "\x8aMNG", "video/x-mng"),
00511         array(0, 4, 0, "ó\x03\x00\x00", "application/x-executable-file"),
00512         array(0, 4, 0, "ç\x03\x00\x00", "application/x-library-file"),
00513         array(0, 4, 0, "³\x01\x00\x00", "video/mpeg"),
00514         array(0, 4, 0, "º\x01\x00\x00", "video/mpeg"),
00515         array(0, 4, 0, "\x00\x00l", "application/x-apl-workspace"),
00516         array(0, 4, 0, "\x00\x00ÿm", "application/x-ar"),
00517         array(0, 4, 0, "\x00\x00ÿe", "application/data"),
00518         array(0, 4, 0, "\x00\x00\x01\x06", "application/x-executable-file"),
00519         array(0, 4, 0, "G\x01\x00\x00", "application/x-object-file"),
00520         array(0, 4, 0, "K\x01\x00\x00", "application/x-executable-file"),
00521         array(0, 4, 0, "M\x01\x00\x00", "application/x-executable-file"),
00522         array(0, 4, 0, "O\x01\x00\x00", "application/x-executable-file"),
00523         array(24, 4, 0, "kê\x00\x00", "application/data"),
00524         array(24, 4, 0, "lê\x00\x00", "application/data"),
00525         array(24, 4, 0, "mê\x00\x00", "application/data"),
00526         array(24, 4, 0, "nê\x00\x00", "application/data"),
00527         array(0, 4, 0, "\x01\x00\x00", "application/x-object-file"),
00528         array(0, 4, 0, "‡\x01\x00\x00", "application/data"),
00529         array(24, 4, 0, "\x00\x00êl", "application/x-dump"),
00530         array(24, 4, 0, "\x00\x00êk", "application/x-dump"),
00531         array(0, 4, 0, "\x00\x00¾1", "text/vnd.ms-word"),
00532         array(0, 2, 0, "\x00\x00", "audio/mpeg"),
00533         array('>16', 2, 0, "\x00\x01", "application/x-object"),
00534         array('>16', 2, 0, "\x00\x02", "application/x-executable"),
00535         array('>16', 2, 0, "\x00\x03", "application/x-sharedlib"),
00536         array('>16', 2, 0, "\x00\x04", "application/x-coredump"),
00537         array(0, 4, 0, "\x00\x00\x00Ì", "application/x-executable-file"),
00538         array(0, 4, 0, "\x04\x00\x00\x00", "font/x-snf"),
00539         array(0, 4, 0, "\x00\x00\x00\x04", "font/x-snf"),
00540         array('>12', 4, 0, "\x01\x00\x00\x00", "audio/basic"),
00541         array('>12', 4, 0, "\x02\x00\x00\x00", "audio/basic"),
00542         array('>12', 4, 0, "\x03\x00\x00\x00", "audio/basic"),
00543         array('>12', 4, 0, "\x04\x00\x00\x00", "audio/basic"),
00544         array('>12', 4, 0, "\x05\x00\x00\x00", "audio/basic"),
00545         array('>12', 4, 0, "\x06\x00\x00\x00", "audio/basic"),
00546         array('>12', 4, 0, "\x07\x00\x00\x00", "audio/basic"),
00547         array('>12', 4, 0, "\x17\x00\x00\x00", "audio/x-adpcm"),
00548         array('>12', 4, 0, "\x00\x00\x00\x01", "audio/x-dec-basic"),
00549         array('>12', 4, 0, "\x00\x00\x00\x02", "audio/x-dec-basic"),
00550         array('>12', 4, 0, "\x00\x00\x00\x03", "audio/x-dec-basic"),
00551         array('>12', 4, 0, "\x00\x00\x00\x04", "audio/x-dec-basic"),
00552         array('>12', 4, 0, "\x00\x00\x00\x05", "audio/x-dec-basic"),
00553         array('>12', 4, 0, "\x00\x00\x00\x06", "audio/x-dec-basic"),
00554         array('>12', 4, 0, "\x00\x00\x00\x07", "audio/x-dec-basic"),
00555         array('>12', 4, 0, "\x00\x00\x00\x17", "audio/x-dec-adpcm")
00556    );
00557 
00558    $fd = substr($binary_data, 0, 3072);
00559    foreach ($mime_magic_data as $def) {
00560       $pos0 = $def[0];
00561       if ($pos0[0] == ">") {
00562          $pos0 = substr($pos0, 1);
00563          if (@strpos($fd, $def[3], $pos0) !== false) {
00564                return($def[4]);
00565          }
00566       } else {
00567          $part = substr($fd, $pos0, $def[1]);
00568          $mask = $def[2];
00569          if ($mask) {
00570              // if $mask is 0
00571             $value = 1 * ('0x'.bin2hex($part));
00572             if (($value & $mask) == $def[3]) {
00573                return($def[4]);
00574             }
00575          } else {
00576             if ($part == $def[3]) {
00577                return($def[4]);
00578             }
00579          }
00580       }
00581    }
00582 }
 All Data Structures Namespaces Files Functions Variables Enumerations