Version 0.9.1
<?php
#error_reporting(E_ALL);
#ini_set("display_errors", 1);
include_once('_ajax_head.php');
$dev = aGET('device');
$p = aGET('p');
$v = aGET('val');
$OUT = new JSON();
$file = "$shdir/synonyms";
$fc = file_get_contents($file);
$t = extstr($fc, 'case "$device" in', 'esac');
$onHold = false;
$found = false;
$exp = explode("\n",$fc);
for($i = 0; $i < count($exp); $i++) {
#lese jede Zeile einzeln ein
$d = $exp[$i];
$s = strpos($d,"#");
if($s !== false) $d = trim(substr($d, 0, $s-1));
#echo "($s) => $d\n";
#continue;
$s1 = stripos($d, '"'. $dev .'"');
$s2 = stripos($d, ')', $s1);
if($onHold) {
$s3 = stripos($d, ';;');
$s4 = stripos($d, $p .'=');
#echo "$d\n";
#echo "$i: $s4";
if($s4 !== false) {
$found = true;
$exp[$i] = "\t". $p .'="'. $v .'"';
break;
}
if($s3 !== false) $onHold = false;
} elseif($s1 !== false && $s2 !== false) {
echo "line: $i\n";
$onHold = true;
} else {
#echo "#$i: $s1 | $s2\n";
}
}
if($found == true) {
$OUT->found = "true";
copy($file, "$shdir/.synonyms-". time()); #Sicherung erstellen
$o = "";
foreach($exp as $e) {
$o .= $e ."\n";
}
$file = fopen("$file", "w");
fwrite($file, $o);
fclose($file);
} else {
$OUT->found = "true";
}
/*
foreach($de as $d) {
$d = trim($d);
while ($s = strpos($d,"#") !== false) {
$e = strpos($d,"\n", $s);
#echo "s: $s | e: $e | \n0: ". substr($d,0,$s-1) ."\n1: ". substr($d, $e) ."\n";
$d = trim(substr($d, 0, $s-1) . substr($d, $e));
};
#echo $d ."\n";
$d = str_replace("'",'"',$d);
if(substr($d, 0, 2) == '*)') continue; #skip 'any' case
#echo $d ."\n";
$s = strpos($d,'"');
$e = strpos($d,'"',$s+1);
$id = substr($d, $s+1, $e - $s -1);
$s = strpos($d,'type=');
$s2 = strpos($d,'"',$s);
$e = strpos($d,'"',$s2+1);
$type = substr($d, $s2+1, $e - $s2 -1);
$s = strpos($d,'valueOn=');
$s2 = strpos($d,'"',$s);
$e = strpos($d,'"',$s2+1);
$valueOn = substr($d, $s2+1, $e - $s2 -1);
$s = strpos($d,'valueOff=');
$s2 = strpos($d,'"',$s);
$e = strpos($d,'"',$s2+1);
$valueOff = substr($d, $s2+1, $e - $s2 -1);
$s = strpos($d,'desc=');
$s2 = strpos($d,'"',$s);
$e = strpos($d,'"',$s2+1);
$desc = substr($d, $s2+1, $e - $s2 -1);
$dev->id = $id;
$dev->type = $type;
$dev->valueOn = $valueOn;
$dev->valueOff = $valueOff;
$dev->desc = $desc;
if($id == $device->val) {
#copy($file, "$shdir/.synonyms-". time()); #Sicherung erstellen
changeParam($param->val, $value->val);
$OUT->device[] = clone $dev;
}
}
*/
exit($OUT);
?>