filter($options["tag"])->each( function (Crawler $node) use (&$options, &$nodes): void { foreach (array_keys($options) as $key) { switch ($key) { case 'find': if ($node->text() == $options[$key]) { log_message("debug", sprintf("getNodeByMyCrawler-> %s:%s", $options["tag"], $options[$key])); $nodes[] = $node; } break; case 'except': if ($node->text() != $options[$key]) { log_message("debug", sprintf("getNodeByMyCrawler-> %s:%s", $options["tag"], $options[$key])); $nodes[] = $node; } break; default: log_message("debug", sprintf("getNodeByMyCrawler-> %s", $options["tag"])); $nodes[] = $node; break; } } } ); return $nodes; } }