Eine fertige Lösung wird nicht viel helfen, wenn du nicht weist warum es so nicht geht. PHP: Strings - Manual
Empfehlung ist das Script selbst in ’ zu setzten, dann brauchst du im String nur ’ maskieren und kannst auch mit " arbeiten.
Um dann eine Variable in den String zu bekommen, einfach mit dem Operanden . die Variable einbinden.
$ip="192.168.0.222";
//Script Erzeugen
$data ="<?
if (\$_IPS['SENDER'] != 'WebFront')";
$data .="
{
\$wert=\$_IPS['VALUE'];";
$data .= "
Sys_GetURLContent('http://".$ip."/setaktor?out=levelnew&funktion=\$wert');";
$data .="
}";
$data .="
if (\$_IPS['SENDER'] == 'WebFront')";
$data .= "
{";
$data .="
\$wert=\$_IPS['VALUE'];";
$data .="
Sys_GetURLContent('http://".$ip."/setaktor?out=levelnew&funktion=\$wert');";
$data .="
}
?>";
GetOrCreateScript("dummy" , 47395 /*[Räume\Wohnzimmer\Rollladen-Test\Level]*/, $data, true ); // Script erzeugen
function GetOrCreateScript($name , $parent, $data, $hidden ) // erstellt ein Script, wenn es noch nicht exestiert
// Erstellt ein Script, Wert 1 = Name , Wert 2 ist die Übergeordnete Instanz, wo das Script angelegt werden soll, Wert 3 ist das was ins Script geschrieben wird, Wert 4 ob das Script sicht sein soll (true, false)
{
$ObjId = @IPS_GetObjectIDByName($name , $parent);
if ($ObjId === false)
{
$ObjId = IPS_CreateScript(0);
IPS_SetName($ObjId, $name);
IPS_SetScriptContent($ObjId, "$data"); // Der Text was ins Script geschrieben wird
IPS_SetHidden($ObjId, $hidden); // Setzt Script auf nicht sichtbar
IPS_SetParent($ObjId,$parent ); // Script unter das Parent verschieben
}
return $ObjId;
} //Ende der Funktion GetOrCreateScript