Devon (03.07.2013)
Thema: Dezimalzahlen im Array
-
03.07.2013, 18:18 #11Projektleitung
- Registriert seit
- 15.11.2011
- Beiträge
- 8.449
- Blog Entries
- 5
Thanked 9.518 Times in 3.333 Posts
AW: Dezimalzahlen im Array
echo akzeptiert nur strings, und da es in PHP keine Überladungen gibt kann somit auch keine für Arrays existieren. Wenn du einen Array zu Debugzwecken ausgeben willst geht das mit print_r(). Das ist aber Grundwissen und steht natürlich in der Doku..
Diese Lösung ist sowohl uneffizient als auch unflexibel. Du ließt Sachen aus, die gar nicht benötigt werden. Außerdem: Was ist wenn irgendwann ein anderer Wert mit gleichem Aufbau in die Quellseite eingefügt wird, und der hier gesuchte Wert dann nicht mehr an 1. Stelle im Array steht sondern an 2. oder sonst wo? Dann wird kompletter Blödsinn ausgelesen und ggf. merkt das eine ganze Zeit lang kein Mensch. Solche 'Wildcard-Pattern' sollte man vermeiden. Erst Recht, wenn es wie hier in diesem Fall gar keinen Grund dazu gibt.
Besser:
PHP-Code:$src = file_get_contents("http://en.warrock.nexoneu.com/Ranking/GetProfile?nickname=Finn");
$search = array(
"\r",
"\n",
"\t",
" "
);
$src = str_replace($search, "", $src);
if(preg_match('#Deaths</dd><ddclass="point">(\d+(?:\.\d+)?)</dd>#', $src, $matches)) {
print_r($matches);
}
Mein pattern validiert auch gleichzeitig eine gültige Zahl, die eine Fließkommazahl sein kann, aber nicht muss. '1' wäre also genau so valide wie '1.555', aber nicht '1.'. Wobei zb einige CAS-Systeme erlauben, führende Nullen wegzulassen. Sprich '.5' wird akzeptiert und als '0.5' angesehen. Das wird bei einer öffentlichen Profilseite aber wohl eher nicht der Fall sein, da das wohl viele Leute verwirrt die das nicht wissen.Code:Array ( [0] => Deaths</dd><ddclass="point">0.76</dd> [1] => 0.76 )
-
The Following User Says Thank You to DMW007 For This Useful Post:
-
04.07.2013, 20:02 #12
AW: Dezimalzahlen im Array
Ok, funktioniert soweit. Auch andere Dinge, die ich auslesen will funktionieren - nur bei zwei happert es noch, denke auch da ist mein Pattern falsch und ich selber finde den Fehler grad nicht. Array gibt mir nichts aus.
Das Erste wäre eine 2 oder 3 stellige Zahl. Das andere nur ein Wort aus 4-5 Buchstaben. Bevor ich die Änderungen, die mir vorgeschlagen wurden vorgenommen habe, hat es noch funktioniert. Wie gesagt, komme nicht dahinter warum er mir bei beidem nurPHP-Code:preg_match_all('/<dd class="numTxt">Level ([0-9]+)<\/dd>/Uis', $src, $rank_level);
preg_match_all('/<td>ACCOUNT STATUS<\/td><td class="rTxt">(.+)<\/td>/Uis', $src, $account_status);
ausgibt wenn ich es mit print_r debuge.Code:Array ( [0] => Array ( ) [1] => Array ( ) )
-
04.07.2013, 20:06 #13Projektleitung
- Registriert seit
- 15.11.2011
- Beiträge
- 8.449
- Blog Entries
- 5
Thanked 9.518 Times in 3.333 Posts
AW: Dezimalzahlen im Array
Wenn du meins übernommen hast werden alle Umbrüche, Tabs und Leerzeichen aus dem Quelltext entfernt. Macht die Sache bei mehrzeiligen Pattern einfacher sofern diese Zeichen nicht relevant sind, da man nicht jedes einzelne Leerzeichen berücksichtigen muss.
-
The Following User Says Thank You to DMW007 For This Useful Post:
Devon (04.07.2013)
-
04.07.2013, 20:08 #14
AW: Dezimalzahlen im Array
Stimmt. Wird ja mit
entfernt bzw. gesucht, was ja vorher auch schon in meinem Snippet drin war. Gar nicht dran gedacht, dann kann es natürlich auch nicht funktionierenPHP-Code:$search = array(
"\r",
"\n",
"\t",
" "
);
Geändert von Devon (04.07.2013 um 20:09 Uhr)
Ähnliche Themen
-
Array befüllen ohne immer den Index anzugeben
Von !lkay im Forum JavaAntworten: 3Letzter Beitrag: 24.11.2013, 15:11 -
Array - Dynamisches Menü
Von Saad im Forum PHPAntworten: 1Letzter Beitrag: 26.03.2013, 13:46 -
C# ListView Items in Array speichern
Von Saad im Forum .NetAntworten: 5Letzter Beitrag: 09.10.2012, 18:56 -
[VB][Frage] Alle Applets in einen Array
Von rVs14 im Forum SourcecodeAntworten: 3Letzter Beitrag: 09.06.2012, 19:47
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.

