Arrays teilen

Hi liebe Freunde,

ich hab mit dem Script was ich grad am schreiben bin folgendes Problem.
In einem Array lese ich von einer Webseite eine Tabelle aus, um diese weiter zuverarbeiten. Das ganze geschieht mit preg_match() aus dem Grund, dass nur bestimmte Dinge von der Tabelle gebraucht werden.

Jetzt kirge ich aber bei einem "foreach($match[0] as $match) nur folgendes raus (Symbolhaft!!)

Element1Element2Element3Element4Element5 usw.

Wie kriege ich diese Elemente getrennt? brauhc eich nämlich um das ganze (das sind Komplette Domänennamen (Host.Domäne.de)) sinnvoll mit Explode zu trennen (brauche nur den Host),.

Vielen Dank

MfG

ZeroEnna

Hallo,

Jetzt kirge ich aber bei einem "foreach($match[0] as $match)
nur folgendes raus (Symbolhaft!!)

Element1Element2Element3Element4Element5 usw.

Wie kriege ich diese Elemente getrennt? brauhc eich nämlich um
das ganze (das sind Komplette Domänennamen (Host.Domäne.de))
sinnvoll mit Explode zu trennen (brauche nur den Host),.

dann solltest Du Deinen regulären Ausdruck überarbeiten.
Der reguläre Ausdruck sollte gleich so aussehen, dass er Dir nur den Host liefert.

Gruß, Stephan

Hallo

Kannst du mal ein konkretes Beispiel nennen?
Sonst wird das hier nichts.

Gruß Johannes

Die regulären Ausdrücke (also die Full Qualified Domain Names) kriege ich leider von WSUS so vorgegeben, da ich keine Ahnung habe, wie ich das iN VB angepasst kriege. Von daher erstmal so annehmen.

ICh habe vom Widows Update Server eine Liste mit allen Hosts bekommen, die einen Restart benötigen. Da ich aber zu faul bin, die 300 Server abzuklappern, um herauszufinden welcher Kollege dafür zuständiger Betreuer ist, will ich das ganze automatisch machen, das jene betreuer nämlich ne Mail kriegen.

Die Liste vom WWindows Update Server (ferner WSUS genannt) enthält aber alle Hosts mit kompletter Domänenkennung.

Z.B. Server1.Domäne1.local

Die Hosts stehen in einer Tabelle in einem HTML-Dokument ()

Der Code meines Scriptes sieht folgendermaßen aus:

<?php // URL, die durchsucht werden soll
$url = 'status.html'; $parsed\_uri = parse\_url($url); // URL öffnen if( function\_exists('file\_get\_contents') ) // Überprüfen ob Funktion von PHP unterstützt { $page = file\_get\_contents($url); } else { die('Bitte PHP aktualisieren!'); } preg\_match\_all("/.\*.domäne1.local/", $page, $match);//Suche nach den Servern foreach($match[0] as $match =\> $treffer){ echo "$treffer"; } ?\> DIe Ausgabe erfolgt aber so: Server1.Domäne1.localServer2.Domäne1.localServer3.Domäne1.localServer4.Domäne1.local usw. wir kruege ich zwischen den einzelnen Servern nun einen Linefeed? Dann kann ich das ganze nämlich mit Explode aufteilen (Trenner: "."). Grüße Zero
<?php :// URL, die durchsucht werden soll
$url = 'status.html'; $parsed\_uri = parse\_url($url); // URL öffnen if( function\_exists('file\_get\_contents') ) // Überprüfen ob Funktion von PHP unterstützt { $page = file\_get\_contents($url); } else { die('Bitte PHP aktualisieren!'); } preg\_match\_all("/.\*.domäne1.local/", $page, $match);//Suche nach den Servern foreach($match[0] as $match =\> $treffer){ echo "$treffer"; } ?\> DIe Ausgabe erfolgt aber so: Server1.Domäne1.localServer2.Domäne1.localServer3.Domäne1.localServer4.Domäne1.local usw. wir kruege ich zwischen den einzelnen Servern nun einen Linefeed? Dann kann ich das ganze nämlich mit Explode aufteilen (Trenner: ".").
foreach($match[0] as $match =\> $treffer){

echo "$treffer"."\n";

}

Gruß, Stephan

Ok

foreach($match[0] as $match => $treffer){

echo „$treffer“;

}

DIe Ausgabe erfolgt aber so:

Server1.Domäne1.localServer2.Domäne1.localServer3.Domäne1.localServer4.Domäne1.local

usw.

wir kruege ich zwischen den einzelnen Servern nun einen
Linefeed? Dann kann ich das ganze nämlich mit Explode
aufteilen (Trenner: „.“).

Wie du den Linefeed erzeugst, wurde ja schon gesagt.
Aber wozu der Aufwand? Du hast ein Array $match[0]. Das schreibst du mit Linefeed getrennt in einen String. Und diesen String wandelst du dann mit explode() wieder in ein Array. Da kannst du doch genausogut gleich das Array $match[0] verwenden.

Gruß Johannes

Leider kratzt das Array das „\n“ überhaupt nicht.
Ich versuch mal weiter, wen noch Ideen da sind, einfach schreiben.

Hallo

Also nochmal: Was hast du mit der Liste dann vor? Soll die in PHP weiterverarbeitet werden? Dann gehst du vermutlich einen Umweg.
Oder willst du vielleicht einen Text, den du aus dem Browser rauskopieren kannst? Dann musst du entweder

echo ’

';
foreach (...) {
....
}
echo '

';

verwenden oder HTML-Zeilenumbrüche setzen:

echo $treffer."
\n";

Johannes