Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Заменить строки в файле.txt на рандомные числа
Форумы портала PHP.SU » » Вопросы новичков » Заменить строки в файле.txt на рандомные числа

Страниц (1): [1]
 

1. mortiy - 20 Января, 2017 - 14:56:44 - перейти к сообщению
Здравствуйте. Есть файл.txt, там есть строки "Номер=3215", требуется найти все эти строки и заменить цифры на рандомные, как бы это сделать?
2. DelphinPRO - 20 Января, 2017 - 16:00:49 - перейти к сообщению
пример файла, кусочек, в студию.
3. mortiy - 20 Января, 2017 - 20:42:49 - перейти к сообщению
Вот пример, там есть комментарий, что должно меняться
4. ytrewq123 - 20 Января, 2017 - 22:40:39 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. $filik = file('test.txt');
  4. foreach($filik as $str)
  5. {
  6. $cifra = mt_rand(0,999);
  7. $zam = preg_replace('/Номер=[0-9]*/','Номер='.$cifra, $str);
  8. $mass[] = $zam;
  9. }
  10.  
  11. file_put_contents('fail.txt', $mass);
  12.  
  13.  


Ну как-то так.
Конечно приходится все обходить в массиве ища нужное.
Но пока другое не придумывается.
Ну и конечно в mt_rand()
Тут уж цифры что вам надо ставьте или без.
5. Строитель - 21 Января, 2017 - 00:02:37 - перейти к сообщению
mortiy, попробуйте так (при необходимости допишите вывод в браузер)
Спойлер (Отобразить)
6. DelphinPRO - 21 Января, 2017 - 06:48:41 - перейти к сообщению
ytrewq123 пишет:

Конечно приходится все обходить в массиве ища нужное.
Но пока другое не придумывается.


А зачем? Читаем весь файл в строковую переменную. И регуляркой меняем. Используем preg_replace_callback, чтобы для каждого вхождения ставить разное число.
Если конечно, там файл не гигабайтами меряется.
7. mortiy - 21 Января, 2017 - 10:55:27 - перейти к сообщению
Спасибо большое за отклик. К сожалению не один из вариантов не заработал Не понял
В первом, создаётся такой же файл, с точно такой же информацией.
Второй вариант должен модифицировать этот же файл? Если да, то тоже не работает Огорчение

Хотя скрипт вроде как и отрабатывает, ошибок нет. Может быть дело в кодировке? Скрипт ищет "Номер=", но не находит из-за кодировки, как думаете?
(Добавление)
Да, я оказался прав, кодировка... Спасибо вам все большое, за помощь!
8. ytrewq123 - 21 Января, 2017 - 22:32:48 - перейти к сообщению
DelphinPRO пишет:
А зачем? Читаем весь файл в строковую переменную. И регуляркой меняем. Используем preg_replace_callback, чтобы для каждого вхождения ставить разное число.

Да preg_replace_callback это хорошая штуковина.
А что лучше, умнее, не знаю солиднее или ещё по какому критерию?
Или форычем массив или же регуляркой строка?
Что там что там идёт поиск.

 

Powered by ExBB FM 1.0 RC1