SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

PHP 5.3 & MySQL 5.1

PHP 5.3 & MySQL 5.1 zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP Grundlagen

PHP Grundlagen Hier kann über grundlegende Probleme oder Anfängerschwierigkeiten diskutiert werden

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 20.02.2012, 14:17:09
FRAD FRAD ist offline
Anfänger
 
Registriert seit: Feb 2012
Alter: 45
Beiträge: 14
Werte aus einer Tabelle von einer anderen Webseite auslesen?

Hallo,

ich möchte gerne von einer anderen Webseite alle Werte einer Tabelle auslesen. Letztendlich brauch ich nur ein paar Werte aus der Tabelle...

Hier der Code von der Tabelle:

PHP-Code:
                <tbody><tr><th colspan="2" class="round-top">Heizung</th></tr>
<
tr class="even"><td class="key ialigned">Istwert Heizkreis 1<div class="info"><div style="margin-top: -30.5px;" class="text"><h3></h3><p>Gültige WerteEingabe zwischen 10,0 und 65,0 °C.</p></div></div></td><td class="value">45 °C</td></tr>
<
tr class="odd"><td class="key ialigned">Sollwert Heizkreis 1<div class="info"><div style="margin-top: -30.5px;" class="text"><h3></h3><p>Gültige WerteEingabe zwischen 10,0 und 65,0 °C.</p></div></div></td><td class="value">45 °C</td></tr>
<
tr class="even"><td class="key">Istwert Heizkreis 2</td><td class="value">45 °C</td></tr>
<
tr class="odd"><td class="key">Sollwert Heizkreis 2</td><td class="value">45 °C</td></tr>
<
tr class="even"><td class="key round-leftbottom">Vorlauftemparatur</td><td class="value round-rightbottom">45 °C</td></tr>
</
tbody
Wie müsste ich das anstellen, das ich die Werte (45 Grad usw.) in eine Variable bekomme? Als quasi nur die Zahl ohne "°C".

Grüße
Mit Zitat antworten
  #2  
Alt 21.02.2012, 01:15:34
Benutzerbild von meikel (†)
meikel (†) meikel (†) ist offline
SELFPHP Guru
 
Registriert seit: Dec 2003
Ort: Erfurt
Alter: 75
Beiträge: 4.001
AW: Werte aus einer Tabelle von einer anderen Webseite auslesen?

Zitat:
Zitat von FRAD Beitrag anzeigen
Wie müsste ich das anstellen, das ich die Werte (45 Grad usw.) in eine Variable bekomme? Als quasi nur die Zahl ohne "°C".
Ganz einfach: Du lernst programmieren und schreibst Dir ein Script, welches genau das tut
Du benötigst dazu PCRE und cURL.
Mit Zitat antworten
  #3  
Alt 21.02.2012, 09:50:29
FRAD FRAD ist offline
Anfänger
 
Registriert seit: Feb 2012
Alter: 45
Beiträge: 14
AW: Werte aus einer Tabelle von einer anderen Webseite auslesen?

Hi,

Grundkenntnisse habe ich, jedoch stellt sich diese Anforderung doch etwas schwieriger als gedacht vor.

Habe versucht mit diesem Code ans Ziel zu kommen:

PHP-Code:
require('simple_html_dom.php');

$table = array();

$html file_get_html('http://localhost/test/se/info_werte.php.htm');
foreach(
$html->find('tr') as $row) {
    
$wert1 $row->find('td',0)->plaintext;
    
$wert2 $row->find('td',1)->plaintext;
    
$table[$wert1] = true;
}

echo 
'<pre>';
print_r($table);
echo 
'</pre>'
Bin ich da auf dem richtigen Weg?

Grüße
Mit Zitat antworten
  #4  
Alt 21.02.2012, 10:58:50
FRAD FRAD ist offline
Anfänger
 
Registriert seit: Feb 2012
Alter: 45
Beiträge: 14
AW: Werte aus einer Tabelle von einer anderen Webseite auslesen?

Ich glaube, dass ich ein Stück weiter bin.... Nur die Frage, wie bekomme ich die einzelnen Werte in eine Variable? Wie müsste ich jetzt mit Strin_Replace arbetien, damit ich nur die Zahl in die Variable bekomme ohne den Rest?

PHP-Code:
<?
 $data = file_get_contents('http://localhost/test/se/info_werte.php.htm');


 $regex = '/<td class="value*(.*)<\/td>/';

 preg_match_all($regex,$data,$match);

 var_export($match[0]);

?>
Ausgabe: Array ( [0] => 45 °C [1] => 45 °C [2] => 45 °C [3] => 45 °C [4] => 45 °C [5] => 45 °C [6] => 45 °C [7] => 25 °C [8] => 24 °C )

Was sagen die Profis dazu? Kann man das so machen? Ist das dann auch Fehlertolerant?

Geändert von FRAD (21.02.2012 um 11:09:18 Uhr)
Mit Zitat antworten
  #5  
Alt 21.02.2012, 11:43:25
FRAD FRAD ist offline
Anfänger
 
Registriert seit: Feb 2012
Alter: 45
Beiträge: 14
AW: Werte aus einer Tabelle von einer anderen Webseite auslesen?

Wie ich die Werte in eine Variable bekomme habe ich herausgefunden:

PHP-Code:
$text1 str_replace"/[^0-9]+/"""$match[0][0] );
echo 
$text1
Nur leider erscheint immer noch: 45 °C Ziel soll es sein: 45

Wie bekomme ich die anderen Zeichen weg?

LÖSUNG: preg_replace anstatt str_replace !!!!

Hier der gesamte Code:
PHP-Code:
<?
 $data = file_get_contents('http://localhost/test/se/info_werte.php.htm');
 $regex = '/<td class="value*(.*)<\/td>/';
 preg_match_all($regex,$data,$match);

 //var_export($match[0]);

 //Tabelle Heizung
 $Istwert_Heizkreis_1 = preg_replace( "/[^0-9]+/", "", $match[0][0] ); echo 'Istwert Heizkreis 1: '.$Istwert_Heizkreis_1.'<br>';
 $Sollwert_Heizkreis_1 = preg_replace( "/[^0-9]+/", "", $match[0][1] ); echo 'Sollwert Heizkreis 1
: '.$Sollwert_Heizkreis_1.'<br>';
 $Istwert_Heizkreis_2 = preg_replace( "/[^0-9]+/", "", $match[0][2] ); echo 'Istwert Heizkreis 2: '.$Istwert_Heizkreis_2.'<br>';
 $Sollwert_Heizkreis_2 = preg_replace( "/[^0-9]+/", "", $match[0][3] ); echo 'Sollwert Heizkreis 2: '.$Sollwert_Heizkreis_2.'<br>';
 $Vorlauftemperatur = preg_replace( "/[^0-9]+/", "", $match[0][4] ); echo 'Vorlauftemparatur: '.$Vorlauftemperatur.'<br>';

  //Tabelle Warmwasser
 $Warmwasser_Isttemperatur = preg_replace( "/[^0-9]+/", "", $match[0][5] ); echo 'Warmwasser-Isttemperatur: '.$Warmwasser_Isttemperatur.'<br>';
 $Warmwasser_Solltemperatur = preg_replace( "/[^0-9]+/", "", $match[0][6] ); echo 'Warmwasser-Solltemperatur: '.$Warmwasser_Solltemperatur.'<br>';

 //Tabelle Raumtemperatur
 $Raumtemperatur_Heizkreis_1 = preg_replace( "/[^0-9]+/", "", $match[0][7] ); echo 'Raumtemperatur Heizkreis 1: '.$Raumtemperatur_Heizkreis_1.'<br>';
 $Raumsolltemperatur_Heizkreis_1 = preg_replace( "/[^0-9]+/", "", $match[0][8] ); echo 'Raumsolltemperatur Heizkreis 1: '.$Raumsolltemperatur_Heizkreis_1.'<br>';
      
?>
Abschließende Frage: Was sagen die Profis dazu? Kann man das so machen? Ist das dann auch Fehlertolerant?

Geändert von FRAD (21.02.2012 um 11:57:44 Uhr)
Mit Zitat antworten
  #6  
Alt 21.02.2012, 12:19:28
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Werte aus einer Tabelle von einer anderen Webseite auslesen?

Hi

Zitat:
ich möchte gerne von einer anderen Webseite alle Werte einer Tabelle auslesen
Deine Tabelle? oder "Stiebel Eltron Reglersteuerung"? ;)

Pass deine Regex an dann brauchst du nix mehr machen
PHP-Code:
preg_match_all('/<td class="key[^>]*>(?P<name>[^<]*).*<\/td>[^<]*<td class="value">(?P<zahl>[^<][0-9]+)/',$html,$treffer);
print_r($treffer); 
Geht bestimmt noch schicker ;)

mfg

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #7  
Alt 21.02.2012, 15:06:08
FRAD FRAD ist offline
Anfänger
 
Registriert seit: Feb 2012
Alter: 45
Beiträge: 14
AW: Werte aus einer Tabelle von einer anderen Webseite auslesen?

war dein Code auf diesen hier bezogen??

PHP-Code:
<?
 $data = file_get_contents('http://localhost/test/se/info_werte.php.htm');
 $regex = '/<td class="value*(.*)<\/td>/';
 preg_match_all($regex,$data,$match);

 //var_export($match[0]);

 //Tabelle Heizung
 $Istwert_Heizkreis_1 = preg_replace( "/[^0-9]+/", "", $match[0][0] ); echo 'Istwert Heizkreis 1: '.$Istwert_Heizkreis_1.'<br>';
 $Sollwert_Heizkreis_1 = preg_replace( "/[^0-9]+/", "", $match[0][1] ); echo 'Sollwert Heizkreis 1
: '.$Sollwert_Heizkreis_1.'<br>';
 $Istwert_Heizkreis_2 = preg_replace( "/[^0-9]+/", "", $match[0][2] ); echo 'Istwert Heizkreis 2: '.$Istwert_Heizkreis_2.'<br>';
 $Sollwert_Heizkreis_2 = preg_replace( "/[^0-9]+/", "", $match[0][3] ); echo 'Sollwert Heizkreis 2: '.$Sollwert_Heizkreis_2.'<br>';
 $Vorlauftemperatur = preg_replace( "/[^0-9]+/", "", $match[0][4] ); echo 'Vorlauftemparatur: '.$Vorlauftemperatur.'<br>';

  //Tabelle Warmwasser
 $Warmwasser_Isttemperatur = preg_replace( "/[^0-9]+/", "", $match[0][5] ); echo 'Warmwasser-Isttemperatur: '.$Warmwasser_Isttemperatur.'<br>';
 $Warmwasser_Solltemperatur = preg_replace( "/[^0-9]+/", "", $match[0][6] ); echo 'Warmwasser-Solltemperatur: '.$Warmwasser_Solltemperatur.'<br>';

 //Tabelle Raumtemperatur
 $Raumtemperatur_Heizkreis_1 = preg_replace( "/[^0-9]+/", "", $match[0][7] ); echo 'Raumtemperatur Heizkreis 1: '.$Raumtemperatur_Heizkreis_1.'<br>';
 $Raumsolltemperatur_Heizkreis_1 = preg_replace( "/[^0-9]+/", "", $match[0][8] ); echo 'Raumsolltemperatur Heizkreis 1: '.$Raumsolltemperatur_Heizkreis_1.'<br>';
      
?>
Damit funktioniert alles - meine Frage war eigentlich nur, ob dies aus eurer Sicht eine saubere Lösung ist.

Grüße
Mit Zitat antworten
  #8  
Alt 21.02.2012, 15:47:01
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Werte aus einer Tabelle von einer anderen Webseite auslesen?

Hi

Zitat:
ob dies aus eurer Sicht eine saubere Lösung ist.
Aus meiner Nein!
Was ist wenn...sollte man sich immer fragen und je mehr man an
Möglichkeiten abfängt die eintreten könnten, desto weniger Fehler
passieren dann auch. Desweiteren schreibst du 9x
PHP-Code:
preg_replace"/[^0-9]+/""",...); 
Nun zeige ich dir schon einen Lösungsansatz und du willst eine
Meinung zu deinem O.o

z.B.
Was ist wenn...
...der Host nicht erreichbar ist?
...nix zurück gegeben wird?
..."Istwert Heizkreis 1" nicht geliefert wird?
..."preg_match_all" nichts findet und $match kein Array ist?

mfg

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
  #9  
Alt 21.02.2012, 16:17:04
FRAD FRAD ist offline
Anfänger
 
Registriert seit: Feb 2012
Alter: 45
Beiträge: 14
AW: Werte aus einer Tabelle von einer anderen Webseite auslesen?

ahh verstanden... die ganzen preg_replace kann ich mir ersparen, da ich an einer Stelle bereits dafür sorge, dass die Werte entsprechend gezogen werden.

Meinst du, du kannst mir da mal einen kleinen Code schreiben?

Was ist wenn...
...der Host nicht erreichbar ist?
...nix zurück gegeben wird?
..."Istwert Heizkreis 1" nicht geliefert wird?
..."preg_match_all" nichts findet und $match kein Array ist?

Wäre echt Klasse!
Mit Zitat antworten
  #10  
Alt 21.02.2012, 17:30:06
Ckaos Ckaos ist offline
Member
 
Registriert seit: Nov 2007
Beiträge: 843
AW: Werte aus einer Tabelle von einer anderen Webseite auslesen?

Hi

Zitat:
Meinst du, du kannst mir da mal einen kleinen Code schreiben?
könnt ich nur dann würd ich meine Arbeit liegen lassen und du lernst nix ;)

Versuch dich daran und dir wird hier geholfen...
Gewöhn dich nicht an Code Vorlagen.

mfg

CKaos
__________________
"Wenn die Leute Häuser so bauen würden, wie wir Programme schreiben, würde der erstbeste Specht unsere Zivilisation zerhacken."
In den allermeisten Fällen sitzt der Bug etwa 40 cm vor dem Monitor!
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zwei Werte aus erster Tabelle mit ein Wert aus zweiter Tabelle (LEFT JOIN) verknüpfen horn-consulting MySQLi/PDO/(MySQL) 2 18.11.2011 14:32:40
Werte aller Einträge der Tabelle ändern Wiesel82 MySQLi/PDO/(MySQL) 9 05.02.2010 13:36:38
Werte aus PDF auslesen urvater PHP für Fortgeschrittene und Experten 1 16.04.2009 14:26:27
Webseite auslesen (fopen) sinfo PHP Grundlagen 1 15.04.2009 14:08:29
Werte aus Tabelle auslesen markus_tirol MySQLi/PDO/(MySQL) 3 19.10.2008 16:23:56


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:20:17 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt