ich habe eine Verbindung zu meiner Fritzbox aufgebaut, und lasse mir den aktuellen Anrufer in einer Variable anzeigen. Zusätzlich kann ich noch die Anfruferliste aus der Fritzbox laden. Bei beiden Scripte verwende ich ein Array mit einer Zuordnung von Telefonnummer und dazugehöriger Name. Z.B.
Hi!
Du könntest doch aus deinem Array einen String machen z.B. in Form von
Nummer1;Name1;Nummer2;Name2;Nummer3;Name3
Den schreibst du dann in eine Variable und baust in deinem anderen script dann eine Funktion ein, die Variable wieder in ein Array zu wandeln.
Evtl. wäre es auch schön diese Daten in einer Datenbank (MySQL oder SQLite) zu haben. Dann könntest du sie besser verwalten, bearbeiten usw.
D.h. jedes Script holt sich die Daten selbst aus der Datenbank.
Ich persönlich würde den Weg Datenbank gehen. Dann könnte man evtl. auch eine Art Click&Dial Funktion ins WebFront einbauen usw.
hier kommen alle Werte rein, die ich zentral pfelgen will, dann mach ich am Anfang jedes scripts einen include, d.h. die werte stehen dann zur Verfügung.
Genaus so hab ich es mit funktionen gemacht, die ich überall brauche (Datum drehen etc) Achtung : innerhalb von Funktionen stehen die Variablen i.d.R nicht zur Verfügung (s. PHP Globale Variablen!)
include („C:/ipsymcon/pfad/variablen.php“);
Grüsse
gerhard
habe es so ählich die Gerhard geschrieben hat realisiert. Nur dass ich ein IPS-Script erstellt habe und dass dann als include eingebunden habe.
Somit kann man die Datei ganz einfach aus der IPS Verwaltungskonsole pflegen.
Das Script habe ich mit folgenden Befehl eingebunden.
include (IPS_GetKernelDir()."\\scripts\\49098.ips.php");
Sehr praktisch in diesem Zusammenhang finde ich auch die serialize/unserialize-Funktionen von PHP. Damit lassen sich Variablen und Arrays in Strings umwandeln, die man dann z.B. in einer IPS-Stringvar. ablegen kann. Ich nutzte das für veränderliche Daten, die von einem Skript gewonnen werden und vielen anderen zur verfügung stehen sollen.
Mit einer externen Datei (sei es nun eine Datendatei oder auch ein IPS-Skript), welches automatisch ersetzt wird, hab ich Schiffbruch erlitten, da von Zeit zu Zeit das Erzeugerskript gleichzeitig mit einem der Benutzerskripte lief - dann hagelte es immer Zugriffsfehler, weil die Datei gesperrt war.
Ich mache es jetzt wie folgt:
Hier das Erzeugende Skript:
...
Skript das z.B. den Hash $config erzeugt
...
// Daten in IPS-Var. sichern
SetValue(12345, serialize($config));
?>
Und hier der Anfang eines Verwenderskripts:
<?
// Variable Daten laden
$config = unserialize(GetValue(12345));
...
Skript das mit den variablen Daten in $config arbeitet
...
Habe das so ähnlich gelöst, allerdings mit eigener XML-Struktur. War für mich beim debuggen übersichtlicher zu lesen.
Allerdings benutze ich keine String-Variable, sondern den Buffer einer RegisterVariable. Hat finde ich den Vorteil, das bei Änderungen die Logmeldungen nicht zugemüllt werden.