hur kan jag köra denna sida lokalt utan server?
https://github.com/sebauer/web-tom/blob ... eeprom.php
Kod: Markera allt
<style>
body {
	color: white;
}
</style>
<?php
echo "<pre>";
var_dump($_POST);
echo "</pre>";
require_once('../includes/bootstrap.php');
chdir('..');
if($_FILES['eeprom']['tmp_name'] == ''){
    jsCallback('Es wurde kein EEPROM Dump hochgeladen!', true);
    die();
}
$requestId = md5(serialize($_POST).serialize($_FILES).microtime());
$eeprom = _EEPROMUPLOAD.'tmp'.$requestId.'.bin';
if(!move_uploaded_file($_FILES['eeprom']['tmp_name'], $eeprom)){
    jsCallback('Dateiuploads konnten nicht verarbeitet werden!', true);
    die();
}
if(filesize($eeprom)!=_EEPROM_SIZE){
    jsCallback('Unerwartete Dateigröße des hochgeladenen EEPROM Dumps!');
    die();
}
$fileName = $_FILES['eeprom']['name'];
$output = "<h3>EEPROM Analyzer Ausgabe für Datei: {$fileName}</h3><br /><dl>";
// DO ANALYITCAL STUFF
$byteDefinitions = array(
    "model"         =>  array( "35", "37" ),
    "type"          =>  array( "38", "3A" ),
    "side"          =>  array( "3B", "3B" ),
    "FIN"           =>  array( "32", "42" ),
    "idcode"           =>  array( "0A", "19" ),
    "fahrzaehler"   =>  array('6C', '6D'),
    "writes"        =>  array("F2", "F2"),
    "scn"           =>  array("05", "06"),
    "features"      =>  array('07', '07'),
    "schluesselcode" =>  array('A4', 'A5'),
    "wegfahrsperre" =>  array('52', '52'),
    "wegfahrsperre1" =>  array('B4', 'B5'),
    "wegfahrsperre2" =>  array('B6', 'B7'),
    "key"           =>  array('56', '56'),
    "keycode"       =>  array('5C', '5D'),
    "adaption"      =>  array('E3', 'E6'),
    "kupplungsc1" =>  array('9A', '9B'),
    "kupplungsc2" =>  array('9C', '9D'),
    "kupplungsc3" =>  array('9E', '9F'),
    "kupplungsc3zeit" =>  array('A2', 'A3'),
    "fehlercode" =>  array('B6', 'B6'),
    "zaehler" =>  array('A0', 'A1'),
    "killbytes" =>  array('96', '97')
);
$valueList = array(
    "model" =>  array(
        "452"   =>  "Smart Roadster",
        "450"   =>  "Smart ForTwo"
        ),
    "type"  =>  array(
        "332"   =>  " Coupé, 45kW",
        "334"   =>  " Coupé, 60kW",
        "337"   =>  " Coupé, 74kW (Brabus)",
        "434"   =>  "60kW",
        "432"   =>  "45kW",
        "437"   =>  "74kW (Brabus)"
        ),
    "side"  =>  array(
        "1" => "Linkslenker",
        "2" => "Rechtslenker"
        ),
    "features"  =>  array(
        "Smart",
        "Schaltwippen",
        "Servolenkung",
        "Tempomat",
        "Softtip",
        "unbekannt (Bit6)",
        "ohne Klimaanlage",
        "unbekannt (Bit8)"
        ),
    "scn0"  =>  array(
        "",
        "SCN5: ??? (Bit 2)",
        "",
        "",
        "",
        "SCN5: ohne Klima (Bit 6)",
        "SCN5: SB2 (Bit 7)",
        "SCN5: Roadster (Bit 8)"
        ),
    "scn1"  =>  array(
        "",
        "",
        "",
        "SCN6: 45kW (Bit 4)",
        "SCN6: 60kW (Bit 5)",
        "",
        "SCN6: 74kW (Bit 7)",
        ""
        )
        );
        $sEeprom = fopen($eeprom, 'r');
        $model = '';
        foreach( $byteDefinitions as $name => $pos ) {
            $start = hexdec($pos[0]);
            $end = hexdec($pos[1]);
            $length = ($end-$start)+1;
            fseek($sEeprom, $start);
            $value = fread($sEeprom, $length);
            switch( $name ) {
                case "model":
                    $model = $valueList["model"][$value];
                    break;
                case "type":
                    $output .= "
                        <dt>Modell</dt>
                        <dd>$model ".$valueList["type"][$value]."</dd>";
                    break;
                case "FIN":
                    $output .= "
                        <dt>FIN</dt>
                        <dd>$value</dd>";
                    break;
                case "idcode":
                    $output .= "
                        <dt>ID Code (SCN)</dt>
                        <dd>$value</dd>";
                    break;
                case "writes":
                    fseek($sEeprom, hexdec('ED'));
                    $ed = fread($sEeprom, 1);
                    $ed = ord($ed);
                    if($ed == hexdec("FF")){
                        $output .= "
                            <dt>MEG Flashes (Tuningfiles)</dt>
                            <dd>".ord($value)."</dd>";
                    } else {
                        $output .= "
                        <dt>MEG Flashes (sC)</dt>
                        <dd>".ord($value)."</dd>";
                    }
                    break;
                case "features":
                    $value = getBinaryString($value);
                    $featuresArray = array_reverse($valueList['features']);
                    $resultsArray = array();
                    for($i=0;$i<strlen($value);$i++){
                        if($value[$i]=='1'){
                            $resultsArray[] = $featuresArray[$i];
                        }
                    }
                    $resultsArray = array_reverse($resultsArray);
                    $featureString = implode(', ', $resultsArray);
                    $output .= "
                        <dt>Features:</dt>
                        <dd>$featureString</dd>";
                    break;
                case "scn":
                    $scnBytes = str_split($value, 1);
                    $scnArray = array();
                    foreach($scnBytes as $offset => $scnByte){
                        $scnByte = getBinaryString($scnByte);
                        $scnValueList = array_reverse($valueList['scn'.$offset]);
                        for($i=0;$i<strlen($scnByte);$i++){
                            if($scnByte[$i]=='1'){
                                if($scnValueList[$i] != ''){
                                    $scnArray[] = $scnValueList[$i];
                                }
                            }
                        }
                    }
                    var_dump($scnArray);
                    $scnString = implode('<br />', $scnArray);
                    $output .= "
                        <dt>SCN Codierung:</dt>
                        <dd>$scnString</dd>";
                    break;
                case "side":
                    $output .= "
                    <dt>Fahrzeugaufbau</dt>
                    <dd>".$valueList[$name][$value]."</dd>";
                    break;
                case "wegfahrsperre":
                    $valueBinary = getBinaryString($value);
                    $valueDec = hexdec(reset(unpack('H*', $value)));
                    $output .= "
                        <dt>Wegfahrsperre:</dt>
                        <dd>Byte 0x52 = $valueBinary ($valueDec)</dd>";
                    break;
                case "wegfahrsperre1":
                    $valueDec = reset(unpack('S*', $value));
                    $output .= "
                        <dt>Wegfahrsperre I:</dt>
                        <dd>Short B4B5 = $valueDec</dd>";
                    break;
                case "wegfahrsperre2":
                    $valueDec = reset(unpack('S*', $value));
                    $output .= "
                        <dt>Wegfahrsperre II:</dt>
                        <dd>Short B6B7 = $valueDec</dd>";
                    break;
                case "key":
                    $valueDec = hexdec(reset(unpack('H*', $value)));
                    $output .= "
                        <dt>Key (???):</dt>
                        <dd>Byte 0x56 = $valueDec</dd>";
                    break;
                case "keycode":
                    $valueDec = reset(unpack('S*', $value));
                    $output .= "
                        <dt>Key Code (???):</dt>
                        <dd>Short 5C5D = $valueDec</dd>";
                    break;
                case "fahrzaehler":
                    $valueDec = reset(unpack('S*', $value));
                    $output .= "
                        <dt>Fahrzähler:</dt>
                        <dd>Short 6C6D = {$valueDec} km</dd>";
                    break;
                case "kupplungsc1":
                    $valueDec = reset(unpack('S*', $value));
                    $output .= "
                        <dt>Kupplungsschutzklasse I:</dt>
                        <dd>Short 9A9B = {$valueDec}</dd>";
                    break;
                case "kupplungsc2":
                    $valueDec = reset(unpack('S*', $value));
                    $output .= "
                        <dt>Kupplungsschutzklasse II:</dt>
                        <dd>Short 9C9D = {$valueDec}</dd>";
                    break;// kupplungsc3zeit
                case "kupplungsc3":
                    $valueDec = reset(unpack('S*', $value));
                    $output .= "
                        <dt>Kupplungsschutzklasse III:</dt>
                        <dd>Short 9E9F = {$valueDec}</dd>";
                    break;
                case "kupplungsc3zeit":
                    $valueDec = reset(unpack('S*', $value));
                    $output .= "
                        <dt>Zeit in Kupplungsschutzklasse III:</dt>
                        <dd>Short A2A3 = {$valueDec} Minuten</dd>";
                    break;
                case "zaehler":
                    $valueDec = reset(unpack('S*', $value));
                    $output .= "
                        <dt>Zähler (???):</dt>
                        <dd>Short A0A1 = {$valueDec}</dd>";
                    break;
                case "killbytes":
                    $valueDec = reset(unpack('S*', $value));
                    $output .= "
                        <dt>Kill Bytes (???):</dt>
                        <dd>Short 9697 = {$valueDec}</dd>";
                    break;
                case "schluesselcode":
                    $valueDec = reset(unpack('S*', $value));
                    $output .= "
                        <dt>Schlüsselcode:</dt>
                        <dd>Short A4A5 = {$valueDec}</dd>";
                    break;
                case "fehlercode":
                    $valueBinary = getBinaryString($value);
                    $valueDec = hexdec(reset(unpack('H*', $value)));
                    $output .= "
                        <dt>Fehlercode:</dt>
                        <dd>Byte 0xB6 = $valueBinary</dd>";
                    break;
                case "adaption":
                    $adaptionsBytes = str_split($value, 1);
                    $start = $byteDefinitions['adaption'][0];
                    $bytesOutput = array( );
                    foreach($adaptionsBytes as $key => $byte){
                        $byteVal = "0x".strtoupper(dechex(hexdec($start)+$key));
                        $valueBinary = getBinaryString($byte);
                        $valueDec = hexdec(reset(unpack('H*', $byte)));
                        $bytesOutput[] = "$byteVal\t$valueBinary ($valueDec)";
                    }
                    $output .= "
                        <dt>Adaptionswerte:</dt>
                        <dd>".implode('<br/>',$bytesOutput)."</dd>";
                    break;
                default:
                    $output .= "
            <dt>$name</dt>
            <dd>".$valueList[$name][$value]."</dd>";
                    break;
            }
        }
        $output .= '</dl>';
        echo "<div id='analysisOutput'>";
        echo $output;
        echo "</div>";
        analyzerCallback();
        function getBinaryString($value){
            return str_pad(decbin(hexdec(reset(unpack('H*', $value)))), 8, '0', STR_PAD_LEFT);
        }
        ?> 
				





