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]

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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...