Hi,
ich habe heute folgenden Code zusammen geschieben. Allerdings bin ich noch nicht so ganz zufrieden. Da die Infos von einer anderen Seite kommen und somit dynamisch sind, dadurch wenn sich die Reihenfolge ändert (z.b. kreuzeckbahn und dann hausbergbahn anstatt hausbergbahn und dann kreuzeckbahn) kommen die infos falsch in die Datenbank.
<?php
//Sockets sparen
$b = 37;
$resultat = "1 : Hausbergbahn ; 1 : Kreuzeckbahn ; 0 : Alpspitzbahn ; 0 : Hochalmbahn ; 1 : Adamswiesenlift ; 1 : Kreuzwankl-Ski-Express (6er-Sesselbahn) ; 1 : Anfängerlift C1 ; 1 : Anfängerlift C2 ; 1 : Anfängerlift C3 ; 1 : Kinderland ; 1 : Rimmler-Moos-Lift ; 1 : Trögllift ; 0 : Kandahar-Express (4er-Sesselbahn) ; 0 : Hexenkesselbahn (2er-Sesselbahn) ; 0 : Kreuzeckzubringer ; 0 : Bernadeinlift ; 0 : Längenfelderbahn (2er-Sesselbahn) ; 0 : Wankbahn ; 1 : Kochelbergabfahrt ; 0 : Hornabfahrt ; 0 : Standard-Tonihütten-Abfahrt ; 1 : Olympia-Abfahrt ; 0 : Kandahar-Abfahrt ; 1 : Bayernhaus-Abfahrt ; 1 : Kreuzwanklabfahrten ; 1 : Trögllifthang ; 1 : Kreuzwankl-Umfahrung ; 0 : Skiweg Kreuzjoch-Hexenkessel ; 0 : Hexenkessel ; 0 : Oberer Skiweg ; 1 : Mittlerer Skiweg ; 0 : Osterfelder-Abfahrt ; 0 : Bernadein-Abfahrt ; 0 : Längenfelder Abfahrt I+II ; 0 : Hochalmweg ; 0 : AlpspiX ; 0 : Rodelbahn ; ";
So bekomm ich die Daten … 1 steht für geöffnet 0 für geschlossen
Variable b ist für die Anzahl der Bahnen
$lifte = explode(" ; ", $resultat);
//foreach($lifte as $name => $wert) {
// echo $name .": ". $wert ."<br>";
//}
for ($g=0;$g<$b;$g++) {
$lift[$g] = explode(" : ", $lifte[$g]);
}
Nun hab ich in $lift[?][0] den Status (0 oder 1) und in $lift[?][1] den Namen von der Bahn/Lift
mysql_connect("localhost", "grojer", "xxxx");
mysql_select_db("grojer");
$sql = "INSERT INTO `grojer`.`lifte` (`id`, `date`, `hausberg`, `kreuzeckbahn`,
`alpspitzbahn`, `hochalmbahn`, `adamswiesenlift`, `kreuzwankl`, `ac1`,
`ac2`, `ac3`, `kinderland`, `rimmler-moos`, `troegllift`, `kandahar-express`,
`hexenkesselbahn`, `kreuzeckzubringer`, `bernadeinlift`, `laengenfelderbahn`,
`wank`, `kochelbergabfahrt`, `hornabfahrt`, `tonihuettenabfahrt`,
`olympiaabfahrt`, `kandaharabfahrt`, `bayernhausabfahrt`,
`kreuzwanklabfahrten`, `troegellifthang`, `kreuzwanklumfahrung`,
`skiweg_kreuzjoch-hexenkessel`, `hexenkessel`, `oberer_skiweg`,
`mittlerer_skiweg`, `osterfelder_abfahrt`, `bernadein_abfahrt`,
`laengenfelderabfahrt12`, `hochalmweg`, `alpspix`, `rodelbahn`)
VALUES
(NULL, NOW(), '". $lift[0][0] ."', '". $lift[1][0] ."', '". $lift[2][0] ."', '". $lift[3][0] ."',
'". $lift[4][0] ."', '". $lift[5][0] ."', '". $lift[6][0] ."', '". $lift[7][0] ."',
'". $lift[8][0] ."', '". $lift[9][0] ."', '". $lift[10][0] ."', '". $lift[11][0] ."',
'". $lift[12][0] ."', '". $lift[13][0] ."', '". $lift[14][0] ."', '". $lift[15][0] ."',
'". $lift[16][0] ."', '". $lift[17][0] ."', '". $lift[18][0] ."', '". $lift[19][0] ."',
'". $lift[20][0] ."', '". $lift[21][0] ."', '". $lift[22][0] ."', '". $lift[23][0] ."',
'". $lift[24][0] ."', '". $lift[25][0] ."', '". $lift[26][0] ."', '". $lift[27][0] ."',
'". $lift[28][0] ."', '". $lift[29][0] ."', '". $lift[30][0] ."', '". $lift[31][0] ."',
'".$lift[32][0] ."', '". $lift[33][0] ."', '". $lift[34][0] ."', '". $lift[35][0] ."',
'". $lift[36][0] ."');";
mysql_query($sql);
?>
Wie könnte ich das so “formulieren” das es egal ist ob in dem ersten array hausberg ist oder in dem 20. Oder wie bekomme ich es am besten hin das überprüft wird ob in $lift[13][1] “kreuzeckbahn” und das dann in die entsprechende variable ($kreuzeckbahn) mit dem status gefüllt wird.
ca. 37 if abfragen machen, für jede variable, ja auch keinen sinn oder?
lg flo
Hier nochmal der Komplette Code:
[code]<?php
// URL, die durchsucht werden soll
//$url = “http://www.vormagazin.at/html/heute.php?item=fahrschein”;
$url = “http://www.zugspitze.de/de/winter/skigebiet/garmisch-classic/lifte-pisten.htm”;
// Zeichenfolge vor relevanten Einträgen
//$startstring = “<span class=“lead”>”;
$startstring = “<td class=“iconfield” width=“23”>”;
$startstring2 = “<td width=“203”>”;
// bis zum nächsten html tag bzw. Zeichenfolge nach relevanten Einträgen
//$endstring = “<”;
$endstring = “”;
$file = fopen($url,“r”);
$i=0;
while (!feof($file)) {
// Wenn das File entsprechend groß ist, kann es unter Umständen
// notwendig sein, die Zahl 2000 entsprechend zu erhöhen. Im Falle
// eines Buffer-Overflows gibt PHP eine entsprechende Fehlermeldung aus.
$zeile[$i] .= fgets($file,2000000);
$i++;
}
fclose($file);
// Nun werden die Daten entsprechend gefiltert.
$b=0;
for ($j=0;$j<$i;$j++) {
if ($resa = strstr($zeile[$j],$startstring)) {
$resb = str_replace($startstring, “”, $resa);
$endstueck = strstr($resb, $endstring);
$ergebnis = str_replace($endstueck,"",$resb);
if(stripos($ergebnis, “open”) === false) {
$ergebnis = “0”;
} else {
$ergebnis = “1”;
}
$resultat .= “$ergebnis : “;
}
if ($resa = strstr($zeile[$j],$startstring2)) {
$resb = str_replace($startstring2, “”, $resa);
$endstueck = strstr($resb, $endstring);
$resultat .= str_replace($endstueck,””,$resb);
$resultat .= " ; ";
$b++;
}
}
// Ausgabe der Daten
//Sockets sparen
//$b = 37;
//$resultat = “1 : Hausbergbahn ; 1 : Kreuzeckbahn ; 0 : Alpspitzbahn ; 0 : Hochalmbahn ; 1 : Adamswiesenlift ; 1 : Kreuzwankl-Ski-Express (6er-Sesselbahn) ; 1 : Anfängerlift C1 ; 1 : Anfängerlift C2 ; 1 : Anfängerlift C3 ; 1 : Kinderland ; 1 : Rimmler-Moos-Lift ; 1 : Trögllift ; 0 : Kandahar-Express (4er-Sesselbahn) ; 0 : Hexenkesselbahn (2er-Sesselbahn) ; 0 : Kreuzeckzubringer ; 0 : Bernadeinlift ; 0 : Längenfelderbahn (2er-Sesselbahn) ; 0 : Wankbahn ; 1 : Kochelbergabfahrt ; 0 : Hornabfahrt ; 0 : Standard-Tonihütten-Abfahrt ; 1 : Olympia-Abfahrt ; 0 : Kandahar-Abfahrt ; 1 : Bayernhaus-Abfahrt ; 1 : Kreuzwanklabfahrten ; 1 : Trögllifthang ; 1 : Kreuzwankl-Umfahrung ; 0 : Skiweg Kreuzjoch-Hexenkessel ; 0 : Hexenkessel ; 0 : Oberer Skiweg ; 1 : Mittlerer Skiweg ; 0 : Osterfelder-Abfahrt ; 0 : Bernadein-Abfahrt ; 0 : Längenfelder Abfahrt I+II ; 0 : Hochalmweg ; 0 : AlpspiX ; 0 : Rodelbahn ; “;
$lifte = explode(” ; “, $resultat);
foreach($lifte as $name => $wert) {
echo $name .”: “. $wert .”
”;
}
for ($g=0;$g<$b;$g++) {
$lift[$g] = explode(" : ", $lifte[$g]);
}
mysql_connect(“localhost”, “grojer”, “58gz85f”);
mysql_select_db(“grojer”);
$sql = “INSERT INTO grojer
.lifte
(id
, date
, hausberg
, kreuzeckbahn
,
alpspitzbahn
, hochalmbahn
, adamswiesenlift
, kreuzwankl
, ac1
,
ac2
, ac3
, kinderland
, rimmler-moos
, troegllift
, kandahar-express
,
hexenkesselbahn
, kreuzeckzubringer
, bernadeinlift
, laengenfelderbahn
,
wank
, kochelbergabfahrt
, hornabfahrt
, tonihuettenabfahrt
,
olympiaabfahrt
, kandaharabfahrt
, bayernhausabfahrt
,
kreuzwanklabfahrten
, troegellifthang
, kreuzwanklumfahrung
,
skiweg_kreuzjoch-hexenkessel
, hexenkessel
, oberer_skiweg
,
mittlerer_skiweg
, osterfelder_abfahrt
, bernadein_abfahrt
,
laengenfelderabfahrt12
, hochalmweg
, alpspix
, rodelbahn
)
VALUES
(NULL, NOW(), '”. $lift[0][0] ."’, ‘". $lift[1][0] ."’, ‘". $lift[2][0] ."’, ‘". $lift[3][0] ."’,
’". $lift[4][0] ."’, ‘". $lift[5][0] ."’, ‘". $lift[6][0] ."’, ‘". $lift[7][0] ."’,
’". $lift[8][0] ."’, ‘". $lift[9][0] ."’, ‘". $lift[10][0] ."’, ‘". $lift[11][0] ."’,
’". $lift[12][0] ."’, ‘". $lift[13][0] ."’, ‘". $lift[14][0] ."’, ‘". $lift[15][0] ."’,
’". $lift[16][0] ."’, ‘". $lift[17][0] ."’, ‘". $lift[18][0] ."’, ‘". $lift[19][0] ."’,
’". $lift[20][0] ."’, ‘". $lift[21][0] ."’, ‘". $lift[22][0] ."’, ‘". $lift[23][0] ."’,
’". $lift[24][0] ."’, ‘". $lift[25][0] ."’, ‘". $lift[26][0] ."’, ‘". $lift[27][0] ."’,
’". $lift[28][0] ."’, ‘". $lift[29][0] ."’, ‘". $lift[30][0] ."’, ‘". $lift[31][0] ."’,
’".$lift[32][0] ."’, ‘". $lift[33][0] ."’, ‘". $lift[34][0] ."’, ‘". $lift[35][0] ."’,
’". $lift[36][0] ."’);";
mysql_query($sql);
?>[/code]