Всем доброго дня. Нужна помощь в решении следующей задачи. Имеется текстовый файл с числовыми и текстовыми данными которые разделены символом ' | ', из которого необходимо выбрать все числовые данные, а если между разделителями ничего нет '| |' то заменить на ноль. С первой задачей справился, а вот со второй никак. Код (Text): <?php header('Content-Type: text/html; charset=CP866'); $file = 'table.txt'; $f = fopen($file, "r") or die("File $file does not exist!"); $a = Array (); while (($data = fgets($f))!==false) { //Деление строки на подстроку по разделителю $a0 = explode (chr(179),$data); foreach ($a0 as $item) //выбор числовых данных if (is_numeric(trim($item))) $a[] = $item; } fclose ($f); foreach ($a as $item) echo $item. '<br>'; ?>
@antropoied, допишите в альтернативной ветке для 16-й строки проверку на empty() значения $item (или trim($item), которое лучше в этом случае вычислить до кода, в котором оно будет использоваться неоднократно), или даже просто сравнить с константой ''. Кстати, "пробельные" символы === "ничего нет"?
Всё разобрался, БОЛЬШОЕ СПАСИБО Sail PHP: <?php header('Content-Type: text/html; charset=CP866'); $file = 'table.LST'; $f = fopen($file, "r") or die("File $file does not exist!"); $a = Array (); while (($data = fgets($f))!==false) { $a0 = explode (chr(179),preg_replace("/ +/","",$data)); foreach ($a0 as $item) if (empty($item)) { $a[] = 0; } else { if(is_numeric($item)) $a[] = $item; } } fclose ($f); foreach ($a as $item) echo $item. '<br>'; ?>