|
| Дата |
|
USD/RUB | 93.4409 | BTC/USD | 66754.4215 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
03.02.2012, 03:05
|
#1
|
Senior Member
Регистрация: 05.10.2009
Сообщений: 633
Бабло: $176215
|
Сила гофака - пхп скриптец
в тхт файле встречается комбинация символов |0| , нужно рандомно заменить 0, на число из диапазона значений 120-300
|
|
|
03.02.2012, 06:36
|
#2
|
Юниор
Регистрация: 26.09.2007
Сообщений: 3
Бабло: $5390
|
PHP код:
<?php
$data = 'текст';
while (preg_match('#\|0\|#',$data,$matches)){
$data = preg_replace('#\|0\|#','|'.(120+mt_rand(180)).'|',$data);
}
print $data;
?>
|
|
|
03.02.2012, 10:06
|
#3
|
Ебланнед
Регистрация: 20.08.2008
Сообщений: 1,067
Бабло: $153400
|
PHP код:
$text = preg_replace ('/\|0\|/e', "'|'.rand(120, 300).'|'", $text);
|
|
|
03.02.2012, 11:00
|
#4
|
Юниор
Регистрация: 26.09.2007
Сообщений: 3
Бабло: $5390
|
Цитата:
Сообщение от sliderxxx
PHP код:
$text = preg_replace ('/\|0\|/e', "'|'.rand(120, 300).'|'", $text);
|
более красивый вариант. ну и в моем косяки писал с утра навскидку
|
|
|
03.02.2012, 11:03
|
#5
|
Senior Member
Регистрация: 19.04.2007
Сообщений: 2,393
Бабло: $314345
|
Цитата:
Сообщение от sliderxxx
PHP код:
$text = preg_replace ('/\|0\|/e', "'|'.rand(120, 300).'|'", $text);
|
Зачем " нужны?
PHP код:
$text = preg_replace ('/\|0\|/e', '|'.rand(120, 300).'|', $text);
|
|
|
03.02.2012, 11:21
|
#6
|
Ебланнед
Регистрация: 20.08.2008
Сообщений: 1,067
Бабло: $153400
|
Ну так запусти и увидишь
Вторым параметром должна передаваться строка с php кодом
|
|
|
03.02.2012, 11:32
|
#7
|
Senior Member
Регистрация: 19.04.2007
Сообщений: 2,393
Бабло: $314345
|
Не знал о таких возможностях На локалке просто быстро тыркнул код
PHP код:
preg_replace ('/\|0\|/', '|'.rand(120, 300).'|', $text);
Он сработал А потом тут в пост уже дописал модификатор "е".
|
|
|
03.02.2012, 13:25
|
#8
|
Senior Member
Регистрация: 18.08.2007
Сообщений: 1,098
Бабло: $199375
|
python
набыдлокодил на питоне ))
PHP код:
import random
file, result = open("/Users/masolit/Desktop/test.txt", "r"), "" for line in file: for word in line.split(): if "|0|" in word: result += word.replace("|0|", "|%s| " % (str(random.randint(120, 300)))) else: result += word + " " result += "\n"
print result
Последний раз редактировалось masolit; 03.02.2012 в 13:34.
|
|
|
03.02.2012, 13:49
|
#9
|
автоматизирую интернеты
Регистрация: 05.07.2009
Адрес: chesser.ru
Сообщений: 3,362
Бабло: $470735
|
самый правильный вариант на пхп:
PHP код:
<?php $text = 'te|0|xtet|0|xte|0|tet'; echo str_replace('|0|', '|'.rand(120,300).'|', $text); ?>
|
|
|
03.02.2012, 13:51
|
#10
|
главный злодей гофака
Регистрация: 18.06.2007
Сообщений: 5,760
Бабло: $953648
|
Цитата:
Сообщение от chesser
самый правильный вариант на пхп:
PHP код:
<?php $text = 'te|0|xtet|0|xte|0|tet'; echo str_replace('|0|', '|'.rand(120,300).'|', $text); ?>
|
неправильный, str_replace везде заменяет на одно случайное значение. preg_replace нужен
__________________
|
|
|
|