Vous devez modifier la sortie du format de tableau généré par SimpleHtmlDom. mon code PHP est. Les résultats de l'SimpleHtmlDom que j'utilise retourne les noms des hôpitaux comme la clé pas la valeur ?:Format de tableau utilisant 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>';
?>
résultats Array actuels:
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)
}
...
Vous cherchez des résultats à tableau imbriqué par nom = > Temps => Couleur
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]=>[""]
}
}
...
Vous devriez boucler sur les éléments 'tr', pas' td.Chats'. Le premier 'td' dans le' tr' devient le nom. Puis boucle sur les éléments 'td' restants dans la rangée pour obtenir les heures et les couleurs. – Barmar
Pourquoi avez-vous 'array (1)' pour les tableaux qui ont deux éléments, 'time' et' color'. – Barmar
question corrigée, les résultats seront vides s'il n'y a pas de temps, voir le nouveau changement - voir aussi le message original sur ce sujet: http://stackoverflow.com/questions/39574672/screen-scraping-php-using-simplehtmldom – BarclayVision