За последние 24 часа нас посетили 23693 программиста и 1734 робота. Сейчас ищут 1893 программиста ...

Чтение и запись txt

Тема в разделе "Сделайте за меня", создана пользователем ikarik, 12 янв 2015.

  1. ikarik

    ikarik Новичок

    С нами с:
    12 янв 2015
    Сообщения:
    6
    Симпатии:
    0
    Помогите реализовать следующее:

    В файле "num.txt" содержатся строки:
    78578
    34537
    37856
    96567
    74659

    В другом файле "usnum.txt" к примеру:
    56498:0
    37856:0
    85786:0
    74659:0
    56489:0
    и т.д

    Нужно, чтобы в совпавших строчках во втором файле после двоеточия увеличивалось число, на 10 например.
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Код (PHP):
    1. <?php
    2. $usnum = array();
    3. $num = file('num.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    4. $out = '';
    5.  
    6. foreach (file('usnum.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $key => $value) {
    7.     $x = explode(':', $value);
    8.     if($x) {
    9.         if(in_array($x[0], $num))
    10.         {
    11.             $x[1] = trim($x[1]) + 10;
    12.         }
    13.  
    14.         $usnum[$x[0]] = $x[1];
    15.         $out = $out.PHP_EOL.$x[0].':'.$x[1];
    16.     }
    17. }
    18.  
    19. file_put_contents('usnum.txt', ltrim($out));
    20. echo ltrim($out);
    21. var_dump($usnum);
    22. ?>
     
  3. ikarik

    ikarik Новичок

    С нами с:
    12 янв 2015
    Сообщения:
    6
    Симпатии:
    0
    Спасибо огромное! То, что нужно!
    Вот если бы ещё исправить кое-что, было бы вообще великолепно...
    Дело в том, что каждый раз после выполнения функции вверху страницы выводится следующее:
    1234567890:10 0987654321:0array(2) { [1234567890]=> int(10) ["0987654321"]=> string(1) "0" }
    и так далее...
     
  4. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    удали эти строки:

    echo ltrim($out);
    var_dump($usnum);
     
  5. ikarik

    ikarik Новичок

    С нами с:
    12 янв 2015
    Сообщения:
    6
    Симпатии:
    0
    Отлично! Ещё раз большое спасибо!
     
  6. ikarik

    ikarik Новичок

    С нами с:
    12 янв 2015
    Сообщения:
    6
    Симпатии:
    0
    Ещё маленькая просьба...
    Поиск в "usnum.txt" строки, соответствующей введённому в "input" и вывод, расположенного после двоеточия.
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Код (PHP):
    1. <!DOCTYPE HTML>
    2. <html>
    3. <head>
    4.   <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    5.   <title></title>
    6. </head>
    7. <body>
    8.  
    9.  <form method="get" action="?">
    10.   <p><b>Число:</b><br>
    11.    <input type="text" name="num" size="40">
    12.   </p>
    13.   <p><input type="submit" value="Отправить">
    14.    <input type="reset" value="Очистить"></p>
    15.  </form>
    16. <?php
    17. if(isset($_GET['num']) && is_numeric($_GET['num']))
    18. {
    19.     $num = $_GET['num'];
    20.     foreach (file('usnum.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES) as $key => $value) {
    21.         $x = explode(':', $value);
    22.         if($x) {
    23.             if( $x[0] == $num )
    24.             {
    25.                 echo 'Результат: '.$x[1].'<br>';
    26.             }
    27.         }
    28.     }
    29. }
    30.  
    31. ?>
    32.  
    33. </body>
    34. </html>
     
  8. ikarik

    ikarik Новичок

    С нами с:
    12 янв 2015
    Сообщения:
    6
    Симпатии:
    0
    Отлично! Благодарю!
     
  9. ikarik

    ikarik Новичок

    С нами с:
    12 янв 2015
    Сообщения:
    6
    Симпатии:
    0