Mikeekb
Новичок
У меня есть таблица с объединенными ячейками по вертикали. В массиве должны повторяться значения в следующей строке из предыдущей объединенной. Я написал такой замудреный скрипт. Но есть проблемка, если в строке встречается две объединенные колонки, то все получается не верно. Можно конечно еще много чего понаворотить тут, условий, чтобы было верно. Но может кто сталкивался с подобной задачей, и есть решение проще?
У меня не получилось сделать универсально, сделано только под таблицу в 4 колонки.
У меня не получилось сделать универсально, сделано только под таблицу в 4 колонки.
PHP:
$rowspan;
$numrow = 0;
$keysave;
$linkm = mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db($dbName) or die("Could not select database");
require_once 'simple_html_dom.php';
$data = file_get_html($link);
$array = array();
foreach($data->find('table',0)->children(0)->children() as $trs) {
$item = array();
foreach($trs->children() as $key => $tds) {
if($numrow > 1 && $keysave == $key) {
if (!($rowspan->find('img',0))) {
$item[$keysave] = $rowspan->plaintext;
} else {
$item[$keysave] = $rowspan->find('img',0)->src;
}
$numrow -= 1;
}
$i = 0;
while($i < 4) {
if(!$item[$i]) {
if (!($tds->find('img',0))) {
$item[$i] = $tds->plaintext;
} else {
$item[$i] = $tds->find('img',0)->src;
}
break;
}
$i++;
}
if($tds->rowspan) {
$numrow = $tds->rowspan;
$rowspan = $tds;
$keysave = $key;
}
}
ksort($item);
array_push($array, $item);
}
print_r ($array);