[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Найти и заменить текст
RCuPeR
Добрый день. Прошу помощи в следующей проблеме:
В тексте нужно найти фразу " ВАШ ЗНАК СИМВОЛИЗИРУЕТ В ГОРОСКОПЕ:" (не учитывая регистр) и заменить на "ВАШ ЗНАК СИМВОЛИЗИРУЕТ В ГОРОСКОПЕ: бла-бла-бла".
Помогите, пожалуйста. Я с регулярками совсем не дружу.



Спустя 7 минут, 9 секунд (7.12.2011 - 12:56) m4a1fox написал(а):
$content = "Ваш знак СИмвоЛизиРует в гороскопе следующее";
$symbol = "камень";
$view = preg_replace('#('.$content.')#is', 'ВАШ ЗНАК СИМВОЛИЗИРУЕТ В ГОРОСКОПЕ: '.$symbol.'', $content);
echo $view;

Спустя 10 минут, 22 секунды (7.12.2011 - 13:07) RCuPeR написал(а):
Цитата (m4a1fox @ 7.12.2011 - 09:56)
$content = "Ваш знак СИмвоЛизиРует в гороскопе следующее";
$symbol = "камень";
$view = preg_replace('#('.$content.')#is', 'ВАШ ЗНАК СИМВОЛИЗИРУЕТ В ГОРОСКОПЕ: '.$symbol.'', $content);
echo $view;

Чёт не работает.
В общем, вот картина:
Есть текст
Свернутый текст

КАМНИ: агат (красный, оранжевый, желтый), алмаз (желтый, коричневый), амазонит, берилл, бирюза, гранат, жадеит, изумруд, карнелит, кремень, коралл, кошачий глаз, лабрадор, лазурит, лунный камень адуляр и беломорит, малахит, мрамор, нефрит, оникс, опал (белый кахолонг, огненный опал), пирит, родонит, рубин, сапфир (желтый), селенит, сердолик (карнеол), тигровый глаз, топаз, турмалин, уваровит, халцедон, хризолит, хризопраз, горный хрусталь (прозрачный и белый), цитрин, янтарь, яшма (все оттенки яшмы).

КАМЕНЬ-ТАЛИСМАН: .

МЕТАЛЛЫ: висмут, хром, ртуть.


С него нужно сделать:
Свернутый текст

КАМНИ: агат (красный, оранжевый, желтый), алмаз (желтый, коричневый), амазонит, берилл, бирюза, гранат, жадеит, изумруд, карнелит, кремень, коралл, кошачий глаз, лабрадор, лазурит, лунный камень адуляр и беломорит, малахит, мрамор, нефрит, оникс, опал (белый кахолонг, огненный опал), пирит, родонит, рубин, сапфир (желтый), селенит, сердолик (карнеол), тигровый глаз, топаз, турмалин, уваровит, халцедон, хризолит, хризопраз, горный хрусталь (прозрачный и белый), цитрин, янтарь, яшма (все оттенки яшмы).

КАМЕНЬ-ТАЛИСМАН: жаденит.

МЕТАЛЛЫ: висмут, хром, ртуть.


Вызываю метод:

//$aHoroscope - собственно текст
//$aStones[0]['name'] - имя камня для замены

$replace_aHoroscope = Phpfox::getService('esoteric.stones')->replace_aHoroscope($aHoroscope, $aStones[0]['name']);


Сам метод:
        public function replace_aHoroscope($text, $stone){
$view = preg_replace('#('.$text.')#is', 'КАМЕНЬ-ТАЛИСМАН: '.$stone.'', $text);
return $view;
}


Не меняет.

Спустя 7 минут, 4 секунды (7.12.2011 - 13:14) m4a1fox написал(а):
ИМХО конечно! Чет в логике запутался. Но! А вдруг!

<?php
$content = "КАМНИ: агат (красный, оранжевый, желтый), алмаз (желтый, коричневый), амазонит, берилл, бирюза, гранат, жадеит, изумруд, карнелит, кремень, коралл, кошачий глаз, лабрадор, лазурит, лунный камень адуляр и беломорит, малахит, мрамор, нефрит, оникс, опал (белый кахолонг, огненный опал), пирит, родонит, рубин, сапфир (желтый), селенит, сердолик (карнеол), тигровый глаз, топаз, турмалин, уваровит, халцедон, хризолит, хризопраз, горный хрусталь (прозрачный и белый), цитрин, янтарь, яшма (все оттенки яшмы).

КАМЕНЬ-ТАЛИСМАН: .

МЕТАЛЛЫ: висмут, хром, ртуть."
;
$symbol = "камень";
$view = preg_replace('#(КАМЕНЬ-ТАЛИСМАН: )#', 'КАМЕНЬ-ТАЛИСМАН:'.$symbol, $content);
echo $view;
?>

Спустя 2 минуты, 15 секунд (7.12.2011 - 13:16) RCuPeR написал(а):
Work it ! wink.gif
Лови в карму smile.gif

Спустя 5 минут, 50 секунд (7.12.2011 - 13:22) m4a1fox написал(а):
Ихххххххххххаааа! Спс!
Есть ньюанс! Это проблема с кириллицей!
Вот решение

<?php
$content = "КАМНИ: агат (красный, оранжевый, желтый),
алмаз (желтый, коричневый), амазонит, берилл, бирюза, гранат,
жадеит, изумруд, карнелит, кремень, коралл, кошачий глаз,
лабрадор, лазурит, лунный камень адуляр и беломорит,
малахит, мрамор, нефрит, оникс, опал (белый кахолонг,
огненный опал), пирит, родонит, рубин, сапфир (желтый),
селенит, сердолик (карнеол), тигровый глаз, топаз, турмалин,
уваровит, халцедон, хризолит, хризопраз, горный хрусталь
(прозрачный и белый), цитрин, янтарь, яшма (все оттенки яшмы).

КаМеНь-ТаЛиСМаН: .

МЕТАЛЛЫ: висмут, хром, ртуть."
;
$symbol = "камень";
$view = preg_replace('#камень-талисман#isu', 'КАМЕНЬ-ТАЛИСМАН:'.$symbol, $content);
echo $view;
?>


есчо вариант! Покрасивши будет!

<?php
$content = 'КАМНИ: агат (красный, оранжевый, желтый), алмаз
(желтый, коричневый), амазонит, берилл, бирюза, гранат, жадеит,
изумруд, карнелит, кремень, коралл, кошачий глаз, лабрадор, лазурит,
лунный камень адуляр и беломорит, малахит, мрамор, нефрит, оникс,
опал (белый кахолонг, огненный опал), пирит, родонит, рубин, сапфир
(желтый), селенит, сердолик (карнеол), тигровый глаз, топаз,
турмалин, уваровит, халцедон, хризолит, хризопраз, горный хрусталь (прозрачный и белый), цитрин, янтарь, яшма (все оттенки яшмы).

КаМеНь-ТаЛиСМаН: .

МЕТАЛЛЫ: висмут, хром, ртуть.'
;
$search = 'камень-талисман';
$replace = 'КАМЕНЬ-ТАЛИСМАН:';
$symbol = 'огонь';
$view = preg_replace('#('.$search.')#isu', $replace.' '.$symbol, $content);
echo $view;
?>


_____________
Гнусный социопат с комплексом Бога.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.