Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo liebe Forenmitglieder,

ich hänge leider gerade an einer, wohl einfachen, Aufgabe. Ich habe bei mir zu Hause einen Arduino, samt Ethernet-Shield. Das Ethernet-Shield gibt analoge Daten auf einer simplen HTML Seite aus.


<!DOCTYPE HTML>
<html>
<meta http-equiv="refresh" content="5">
analog input 0 is 315<br />
</html>
[/PHP]

Nun ist es aber so, das ich nur die Zahl weiter benutzen möchte und anhand derer eine Ausgabe produzieren möchte. Ist die Zahl über 512 "ok" und unter 512 "warnung".

So sieht derzeit mein Code aus.

[PHP]
#!/usr/bin/perl
my $url = '192.168.178.26';
# Holt Informationen von Website

use LWP::Simple;
my $content = get $url;
die "Couldn't get $url" unless defined $content;

print $content
Inhalt durchsuchen

if($content =~ 'analog input 0 is([0-9]+)') {
print "Arduino laeuft.";
} else {
print "Fresh Air is apparently jazzless today.\n";
}

Vielen Dank schonmal :)

Geschrieben

Ganz allgemein: gewöhne Dir bei Perl am besten an, jedes Skript mit

use strict;
use warnings;[/PHP]

zu eröffnen. Diese Pragmas unterstützen Dich dabei, Syntaxfehler schneller zu finden.

Aber auch ohne die Pragmas ist schon einmal der folgende Syntaxfehler offensichtlich:

[code] print $content Inhalt durchsuchen [/code]

Zum Regex:

[PHP]$content =~ 'analog input 0 is([0-9]+)'

Vor der öffnenden Klammer fehlt ein Leerzeichen - der Regex kann also nicht treffen. Alle "Matches" in runden Klammern werden in den Spezialvariablen $1, $2, $3 usw. gespeichert - der Inhalt der ersten runden Klammern landet also in $1. Dies kannst Du dann weiterverarbeiten.

Kleines Testskript:

#!/usr/bin/perl
use strict;
use warnings;

my $content = <<__END__;
<!DOCTYPE HTML>
<html>
<meta http-equiv="refresh" content="5">
analog input 0 is 315<br />
</html>
__END__
if($content =~ 'analog input 0 is (\d+)')
{
print "Arduino laeuft.\n";
print $1 > 512 ? "ok\n" : "warning\n";
}
else
{
print "Fresh Air is apparently jazzless today.\n";
}[/PHP]

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...