За последние 24 часа нас посетили 16155 программистов и 1666 роботов. Сейчас ищет 891 программист ...

как заменить пробел на ноль

Тема в разделе "PHP для новичков", создана пользователем antropoied, 8 авг 2018.

  1. antropoied

    antropoied Активный пользователь

    С нами с:
    8 авг 2018
    Сообщения:
    23
    Симпатии:
    0
    Всем доброго дня.
    Нужна помощь в решении следующей задачи. Имеется текстовый файл с числовыми и текстовыми данными которые разделены символом ' | ', из которого необходимо выбрать все числовые данные, а если между разделителями ничего нет '| |' то заменить на ноль. С первой задачей справился, а вот со второй никак.

    Код (Text):
    1. <?php
    2.   header('Content-Type: text/html; charset=CP866');
    3.  
    4.    $file = 'table.txt';
    5.  
    6. $f = fopen($file, "r") or
    7.    die("File $file does not exist!");
    8. $a = Array ();
    9. while (($data = fgets($f))!==false) {
    10.  
    11. //Деление строки на подстроку по разделителю
    12.   $a0 = explode (chr(179),$data);
    13.   foreach ($a0 as $item)
    14.  
    15. //выбор числовых данных
    16. if (is_numeric(trim($item))) $a[] = $item;
    17. }
    18.  
    19. fclose ($f);
    20. foreach ($a as $item) echo $item. '<br>';
    21.  
    22. ?>
     

    Вложения:

    • table.txt
      Размер файла:
      236 байт
      Просмотров:
      0
  2. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @antropoied, допишите в альтернативной ветке для 16-й строки проверку на empty() значения $item (или trim($item), которое лучше в этом случае вычислить до кода, в котором оно будет использоваться неоднократно), или даже просто сравнить с константой ''.
    Кстати, "пробельные" символы === "ничего нет"?
     
  3. antropoied

    antropoied Активный пользователь

    С нами с:
    8 авг 2018
    Сообщения:
    23
    Симпатии:
    0
    Спасибо за совет, но вот как "прикрутить" empty() ума не приложу.
     
  4. antropoied

    antropoied Активный пользователь

    С нами с:
    8 авг 2018
    Сообщения:
    23
    Симпатии:
    0
    Всё разобрался, БОЛЬШОЕ СПАСИБО
    Sail

    PHP:
    1. <?php
    2.   header('Content-Type: text/html; charset=CP866');
    3.  
    4.   $file = 'table.LST';
    5.  
    6.   $f = fopen($file, "r") or
    7.   die("File $file does not exist!");
    8.  
    9.   $a = Array ();
    10.   while (($data = fgets($f))!==false) {
    11.  
    12.         $a0 = explode (chr(179),preg_replace("/ +/","",$data));
    13.  
    14. foreach ($a0 as $item)
    15.        if (empty($item))
    16.         {
    17.                $a[] = 0;
    18.         }
    19. else
    20.         {
    21.       if(is_numeric($item)) $a[] = $item;
    22.         }
    23.        }
    24. fclose ($f);
    25. foreach ($a as $item) echo $item. '<br>';
    26.  
    27. ?>