Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 803

Читабельный вид текстового файла

11.02.2015, 15:06. Показов 2197. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пишу менеджер crontab. нужно что бы выводило все данные в нормальном, читабельном виде.. Например в текстовом файле записано такое


Code
1
2
3
4
5 * * * *
15 4 * * *
12 4 * * *
2 5 6 * *
Мне выводило бы такое в браузер:


Каждые 5 минут
Каждые 12 минут, 4 часа
Каждые 2 минуты, 5 часов, 6 дней
и т.д.

1 - минуты
2- часы
3-дни
4-месяца
5-дни недели.

То есть что бы не тупо выводило всё в таком виде, а в читабельном. Спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.02.2015, 15:06
Ответы с готовыми решениями:

преобразование кода в читабельный вид
получаю с нного ресурса данные в таком виде : на данный момент преобразовываю: function SymbolReplace ($msg) { $msg = strtoupper...

Счётчик скачивания файла не меняя вид исходной ссылки
Здравствуйте. На сайте лежит exe файл который скачивает пользователь, путь к файлу такой: "http://САЙТ.ru/ФАЙЛ.exe". К этому...

PHP отображает предложения знаками ?, тогда как в MySQL текст читабельный
Приветствую! Импортировал данные с одной MySQL базы в другую, все удачно импортировалось, но если в браузере открываю страницу, читающую...

6
Эксперт PHP
 Аватар для Kerry_Jr
3106 / 2591 / 1219
Регистрация: 14.05.2014
Сообщений: 7,236
Записей в блоге: 1
11.02.2015, 15:37
Bookkc1, дикий говно-велосипед, с падежами проблема
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
function func($file_name)
    {
        if (!file_exists($file_name))
        {
            echo 'Файл "'.$file_name.'" не найден!';
            return;
        }
        $file = file($file_name);
        $string = "";
        foreach ($file as $item)
        {
            $string .= 'Каждые ';
            $item = explode(' ', $item);
            for ($i = 0; $i < 5; ++$i)
            {
                $item[$i] = trim($item[$i]);
                if ($item[$i] != '*')
                {
                    switch ($i)
                    {
                        case 0:
                            $string .= $item[$i].' минут';
                            break;
                        case 1:
                            $string .= ', '.$item[$i].' часов';
                            break;
                        case 2:
                            $string .= ', '.$item[$i].' дней';
                            break;
                        case 3:
                            $string .= ', '.$item[$i].' месяцев';
                            break;
                        case 4:
                            $string .= ', '.$item[$i];
                            break;
                    }
                }
            }
            $string .= "<br>\r\n";
        }
        echo $string;
    }
    
    func("file.txt");
1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 803
11.02.2015, 17:16  [ТС]
Да с падежами то такое, я что то придумаю) мне главное что б работало ) спасибо, напишу на днях

Добавлено через 1 час 29 минут
Спасибо, да, реально работает!

А ещё такой вопрос, как удалять строчки ? пример, что б возле каждой строчки типа "Каждые 5 минут" была кнопка "Удалить" и она удаляла с текстового файла "5 * * * *"
0
Заблокирован
11.02.2015, 17:30
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
function num_trim($number){
    if($number<=19) return $number;
    if($number>19 and substr($number, -2)<=19)return (int)substr($number, -2);
    elseif ($number>19 and substr($number, -2)>19)return (int)substr($number, -1);
}
function add_names($number,$arr){
    $num = num_trim($number);
    if($num==1) return $number.' '.$arr[0];
    elseif($num>1 and $num<5) return $number.' '.$arr[1];
    else return $number.' '.$arr[2];
}
 
$file = 'test1.txt';//путь к текстовому файлу
 
//---Настройки
$arr_names0 = array('минута', 'минуты', 'минут');
$arr_names1 = array('час', 'часа', 'часов');
$arr_names2 = array('день', 'дня', 'дней');
$arr_names3 = array('месяц', 'месяца', 'месяцев');
 
//---формируем массив
$fopen = fopen($file, "r");
while (!feof($fopen)) 
  {
    $line = fgets($fopen);
    $str_arr = explode (' ', $line);
    for($a=0;$a<count($str_arr);$a++)
      {
        $str_arr["$a"] = trim($str_arr["$a"]);
        if($str_arr["$a"]=='*')$str_arr["$a"]=0;
        $str_arr["$a"] = add_names($str_arr["$a"],${'arr_names'.$a});
      }
    $file_arr[]=$str_arr;
  }
//---вывод  
foreach($file_arr as $a)
  {
    echo 'Каждые '.implode(' ',$a).'<br>';
  }
1
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 803
11.02.2015, 17:36  [ТС]
Спасибо и первый и второй вариант работают!

Как сделать удаление строк по выбранной ? очень прошу помощи
0
Заблокирован
11.02.2015, 19:14
основная страница:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
function num_trim($number){
    if($number<=19) return $number;
    if($number>19 and substr($number, -2)<=19)return (int)substr($number, -2);
    elseif ($number>19 and substr($number, -2)>19)return (int)substr($number, -1);
}
function add_names($number,$arr){
    if(empty($number)) return $number;
    $num = num_trim($number);
    if($num==1) return $number.' '.$arr[0];
    elseif($num>1 and $num<5) return $number.' '.$arr[1];
    else return $number.' '.$arr[2];
}
 
$file = 'test1.txt';//путь к текстовому файлу
 
//---Настройки
$arr_names0 = array('минута', 'минуты', 'минут');
$arr_names1 = array('час', 'часа', 'часов');
$arr_names2 = array('день', 'дня', 'дней');
$arr_names3 = array('месяц', 'месяца', 'месяцев');
 
//---формируем массив
$fopen = fopen($file, "r");
while (!feof($fopen)) 
  {
    $line = fgets($fopen);
    $str_arr = explode (' ', $line);
    for($a=0;$a<count($str_arr);$a++)
      {
        $str_arr["$a"] = trim($str_arr["$a"]);
        if($str_arr["$a"]=='*')$str_arr["$a"]='';
        $str_arr["$a"] = add_names($str_arr["$a"],${'arr_names'.$a});
      }
    $file_arr[]=$str_arr;
  }
//---вывод
$n=1;  
foreach($file_arr as $a)
  {
    echo 'Каждые '.implode(' ',$a).' <a href="del_line_txt.php?line='.$n++.'">Удалить</a><br>';
  }

del_line_txt.php:
Кликните здесь для просмотра всего текста
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$file = 'test1.txt';
$num_line = $_GET['line'];
 
$fopen = fopen($file, "r");
$n=1;
while (!feof($fopen)) 
  {
    $line = fgets($fopen);
    if($n!=$num_line)$text .= $line;
    $n++;
  }
fclose($fopen);
 
$fopen = fopen($file, "w");
fwrite($fopen, trim($text));
fclose($fopen);
 
//ридирект обратно в зависимости от структуры сайта
// как вариант:
header("Location:" . $_SERVER['HTTP_REFERER']);
0
3 / 3 / 0
Регистрация: 01.11.2012
Сообщений: 803
12.02.2015, 14:02  [ТС]
Спасибо друг! работает!!!

Добавлено через 24 минуты
Первый вариант мне подходит больше, от Kerry_Jr . Как сделать там удаление так как во втором варианте ?

Я новичок , мне 1-й вариант понятней... помогите

Добавлено через 2 часа 23 минуты
добавил строчку такую

PHP
1
    echo $string.' <a href="del_line_txt.php?line='.$n++.'">Удалить</a><br>';
выдает такое

Code
1
2
3
Каждые 3 минут, 3 часов, 3 дней, 3 месяцев, 3 день
Каждые 2 минут, 2 часов, 2 дней, 2 месяцев, 2 день
Удалить
причем удаляет построчно... Как сделать, что б возле каждой надписи было "Удалить" . Использую пример №1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.02.2015, 14:02
Помогаю со студенческими работами здесь

Вывод из MySQL в читабельный вид
Занимаюсь вынужденно php около месяца, не пинайте сильно. Встала задача - сделать форму для ввода в две таблицы по связи один ко многим...

NixTime перевести в читабельный вид
Как перевести на JS nix время 1402833977 в такой вид день-месяц-год На PHP знаю. echo date ('d-m-Y','1402833977'); В JS не силён,...

Как перевести строку в читабельный вид?
Собственно из названия темы. Есть строка символов (к примеру такая: 0430002004370430043904340438) Как перевести ее в читабельный вид, т.е...

Конвертация таблицы в MS EXCEL в читабельный вид
Добрый день всем. Помогите создать макрос на конвертацию таблицы в MS EXCEL в читабельный вид. Ctrl+C/V убивает очень много времени. ...

Перевести Hex код в читабельный вид
Есть задача перевести Hex код(код черновиковый) в читабельный вид. Есть 2 варианта преобразования hex оба что-то выводят(вопрос не в этом)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США. Нашел на реддите интересную статью под названием «Кто-нибудь знает, где получить бесплатный компьютер или. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru