![]() |
counters
hi ,
problemma takogo roda ..... ispol'zuu regular expressions (preg_replace();) ix neskol'ko podrjad ......... 15-20 kak mne uznat' skol'ko raz VSEGO (t.e. vse oni vmeste) sdelali zameni ?????? t.e. $code="asdqwefghzxcvbnrtyfghasdqwe"; $code=preg_replace("'asd'is","qwe",$code); $code=preg_replace("'zxc'is","vbn",$code); $code=preg_replace("'dfg'is","ert",$code); $code=preg_replace("'yui'is","hjk",$code); mna nado sdelt' ne bolle N kolichestva zamen , kak ??????! reshenie kak // $s=array ("my regular"); $r=array("my replacment"); $code=preg_replace($s,$r,$code); // ne podxodit.! |
Pochemu ne podhoidit? V smisle - ne furichit ili iz principa?
Potomu-chto vishenapisanoye preg ($array_patterns, $array_replaces, $input) dolzno rabotat... Yesho mozno sdelat tak <? function reps ($_) { $pats = array ("pat0", "pat1"); $reps = array ("rep0", "rep1"); $i = 0; foreach ($patterns as $pat) { $_ .= ereg_replace ($pat, $reps[$i++], $_); } return ($_); } ?> |
лады ... , я просто плохо указал мою проблему !
масивы я могу использовать , то что я их не пользовал , дурак я .. :o моя проблема такова, что мне надо проверить сколько раз произошла замена и если замена произошла больше чем N раз , то надо выдать ошибку , а не ограничить ........ так же по ходу дела , можно ли каким то способом вытащить преременные $1 $2 $3 .... из preg_replace(); ??? если писать PHP код:
|
В таком случае ябы посоветовал тебе юзать preg_replace_callback (mixed pattern, mixed callback, mixed subject [, int limit);
Фишка вот в чем : вместо обыкновенного replac-a preg_replace_callback заменяетсвой стринг на то что возвращает функция [имя которой] ты пишеш во втором аргументе. Получается следующие : PHP код:
|
ЗЫ
Не сомневаюсь что все можно сделать легче. |
посиб , идея понята :)
|
Простите! п почему сначала оба писали на транслите, а потом на русском?
|
шифровались :D :D :D
ЗЫ : я сидел за компом без кирилики :( |
А мне в лом было клаввиши "нащупывать" на испанской клаве. А потом я вспомнил как приятно читать мессаги на кирилице. :)
|
| Часовой пояс GMT +4, время: 10:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.