Keiner ein Idee 

Auf php.net wird das „genauso“ wie von Christian vorgeschlagen erklärt ...
Beispiel #4 Nutzung von Stream-Contexten
Mein Teil (mittlerweile auf Minimum reduziert) :
Und hier der EXEC-Teil mit „Else"


Auf php.net wird das „genauso“ wie von Christian vorgeschlagen erklärt ...
Beispiel #4 Nutzung von Stream-Contexten
PHP-Code:
<?php
// Erzeugen eines Streams
$opts = array(
'http'=>array(
'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: foo=bar\r\n"
)
);
$context = stream_context_create($opts);
// Öffnen der Datei mit den oben definierten HTTP-Headern
$file = file_get_contents('http://www.example.com/', false, $context);
?>
Mein Teil (mittlerweile auf Minimum reduziert) :
PHP-Code:
if ($E=getLogicEingangDataAll($id)) {
// L a u t s t ä r k e :
if ($E[20]['value']!=0 && $E[20]['refresh']==1) {
$ctx=stream_context_create(array('http' => array('timeout' => 3 )));
$r=file_get_contents('http://10.0.100.150/%7Edariusz/iControl.php?c=apVolume&p1=Computer&p2='.$E[20]['value'],0,$ctx);
}
}
Und hier der EXEC-Teil mit „Else"
PHP-Code:
###[EXEC]###
<?php
require(dirname(__FILE__)."/../../../../main/include/php/incl_lbsexec.php");
set_time_limit(0);
sql_connect();
if ($E=getLogicEingangDataAll($id)) {
// Hier ein UDP-Listener, der N I C H T auf Datenpakte wartet. Die Schleife läuft also ständig durch!
// WICHTIG: PHP-Fehlerbehandlung abschalten, sonst generiert socket_recv() "Warnungen", wenn keine Daten empfangen wurden
restore_error_handler();
error_reporting(0);
if ($socket = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP)) {
if (socket_bind($socket,0,$E[31]['value'])) {
while (getSysInfo(1)>=1) {
$len = socket_recv($socket,$data,1024,MSG_DONTWAIT);
if ($len!==false) {
// UPD-Paket empfangen: Hier die Auswertung wie gehabt...
$data = preg_replace("/[^A-Za-z0-9&=]/",'',$data);
parse_str($data, $output); // $output = array();
if (array_key_exists('EA', $output)) {setLogicLinkAusgang($id,1, $output['EA']);}
if (array_key_exists('Play', $output)) {setLogicLinkAusgang($id,2, $output['Play']);}
if (array_key_exists('Pause', $output)) {setLogicLinkAusgang($id,3, $output['Pause']);}
if (array_key_exists('Stop', $output)) {setLogicLinkAusgang($id,4, $output['Stop']);}
if (array_key_exists('FF', $output)) {setLogicLinkAusgang($id,5, $output['FF']);}
if (array_key_exists('FR', $output)) {setLogicLinkAusgang($id,6, $output['FR']);}
if (array_key_exists('MastVol',$output)) {setLogicLinkAusgang($id,7, $output['MastVol']);}
if (array_key_exists('LS1', $output)) {setLogicLinkAusgang($id,10,$output['LS1']);}
if (array_key_exists('LS2', $output)) {setLogicLinkAusgang($id,11,$output['LS2']);}
if (array_key_exists('LS3', $output)) {setLogicLinkAusgang($id,12,$output['LS3']);}
if (array_key_exists('LS4', $output)) {setLogicLinkAusgang($id,13,$output['LS4']);}
if (array_key_exists('LS5', $output)) {setLogicLinkAusgang($id,14,$output['LS5']);}
if (array_key_exists('LS6', $output)) {setLogicLinkAusgang($id,15,$output['LS6']);}
if (array_key_exists('LS7', $output)) {setLogicLinkAusgang($id,16,$output['LS7']);}
if (array_key_exists('LS8', $output)) {setLogicLinkAusgang($id,17,$output['LS8']);}
if (array_key_exists('LS9', $output)) {setLogicLinkAusgang($id,18,$output['LS9']);}
if (array_key_exists('LS10', $output)) {setLogicLinkAusgang($id,19,$output['LS10']);}
if (array_key_exists('LSV1', $output)) {setLogicLinkAusgang($id,20,$output['LSV1']);}
if (array_key_exists('LSV2', $output)) {setLogicLinkAusgang($id,21,$output['LSV2']);}
if (array_key_exists('LSV3', $output)) {setLogicLinkAusgang($id,22,$output['LSV3']);}
if (array_key_exists('LSV4', $output)) {setLogicLinkAusgang($id,23,$output['LSV4']);}
if (array_key_exists('LSV5', $output)) {setLogicLinkAusgang($id,24,$output['LSV5']);}
if (array_key_exists('LSV6', $output)) {setLogicLinkAusgang($id,25,$output['LSV6']);}
if (array_key_exists('LSV7', $output)) {setLogicLinkAusgang($id,26,$output['LSV7']);}
if (array_key_exists('LSV8', $output)) {setLogicLinkAusgang($id,27,$output['LSV8']);}
if (array_key_exists('LSV9', $output)) {setLogicLinkAusgang($id,28,$output['LSV9']);}
if (array_key_exists('LSV10', $output)) {setLogicLinkAusgang($id,29,$output['LSV10']);}
} else {
// kein UDP-Paket empfangen: Hier könnten z.B. HTTP-Request verarbeitet werden
if ($E=getLogicEingangDataAll($id)) {
// L a u t s t ä r k e :
if ($E[20]['value']!=0 && $E[20]['refresh']==1) {
$ctx=stream_context_create(array('http' => array('timeout' => 3 )))
$r=file_get_contents('http://10.0.100.150/%7Edariusz/iControl.php?c=apVolume&p1=Computer&p2='.$E[20]['value'],0,$ctx);
}
}
}
usleep(1000*100); //z.B. 100ms warten - wichtig, um die CPU-Last zu begrenzen!
}
}
}
socket_close($socket);
}
sql_disconnect();
?>
###[/EXEC]###


Ich habe tatsächlich die ganze(!) Nacht von DO auf Fr damit verbracht, genau mit diesen Fragen. Denn vermutlich steckt die Wahrheit in Deiner letzten Frage. Genau dafür spiecke ich in der Entwicklung alle(!) Verzweigungen mit TraceLog-Fähnchen, d.h. in jedem THEN und ELSE steckt ein eindeutiger Text wie "Kond03-ELSE". Und wo nötig auch zusätzlich mit Variablenausgabe. Kann man auch in eine Ausgabe mit einem '.' einfach konkatenieren, damit es nicht zu viel wird, z.B. writeToTraceLog(0,true,'Kond E35 - THEN:'.$url);
Kommentar