Sie müssen die Ausgabe des von SimpleHtmlDom generierten Array-Formats ändern. mein PHP-Code ist. Die Ergebnisse des SimpleHtmlDom, die ich benutze ist Rückkehr Krankenhaus Namen als Schlüssel nicht der Wert ?:Format des Arrays mit SimpleHtmlDom
<?php
require('simple_html_dom.php');
$table = array();
$html = file_get_html('https://www.miemssalert.com/chats/Default.aspx?hdRegion=3');
foreach($html->find('table#tblHospitals tr td.Chats') as $e)
{
//echo $e->plaintext . $e->getAttribute('style') . '<hr>';
$nametime = $e->plaintext;
$color = $e->getAttribute('style');
$table[$nametime][$color] = true;
}
echo json_encode($table);
echo '<pre>';
var_dump($table);
echo '</pre>';
?>
aktuelle Array Ergebnisse:
array(37) {
["Anne Arundel Medical Center"]=>
array(1) {
[0]=>
bool(true)
}
[""]=>
array(1) {
[0]=>
bool(true)
}
["Baltimore Washington Medical Center"]=>
array(1) {
[0]=>
bool(true)
}
["04:31"]=>
array(1) {
["background-color:#ffff00;color:#000000;"]=>
bool(true)
}
["Bon Secours Hospital"]=>
array(1) {
[0]=>
bool(true)
}
...
für die Ergebnisse der Suche nach Namen verschachtelte Array wird = > Time => Farbe
array(37) {
array(1) {["Name"]=>["Anne Arundel Medical Center"]=>
array(2) {
[time]=>[""],[color]=>[""]
}
}
array(1) {["Name"]=>["Baltimore Washington Medical Center"]=>
array(2) {
[time]=>["04:31"],[color]=>["background-color:#ffff00;color:#000000;"]
}
}
array(1) {["Name"]=>["Bon Secours Hospital"]=>
array(2) {
[time]=>[""],[color]=>[""]
}
}
...
Sie sollten die 'tr' Elemente, nicht' td.Chats' überschleifen. Der erste 'td' im' tr' wird zum Namen. Schleife dann über die restlichen 'td' Elemente in der Reihe, um die Zeiten und Farben zu erhalten. – Barmar
Warum haben Sie 'array (1)' für Arrays, die zwei Elemente haben, 'time' und' color'. – Barmar
korrigierte Frage, die Ergebnisse werden leer sein, wenn keine Zeit existiert, siehe neue Änderung - siehe auch ursprünglichen Beitrag zu diesem Thema: http://StackOverflow.com/Questions/39574672/Screen-Scraping-PHP-using-Simplethmld – BarclayVision