Надо отделить превью от основной статьи, следующего вида:
"Это текст, отображающийся в предпросмотре статьи <preview> А этот текст должен вырезаться"
Я должен получить два значения:
a) "Это текст, отображающийся в предпросмотре статьи"
b) "Это текст, отображающийся в предпросмотре статьи А этот текст должен вырезаться"
какие паттерны в preg_replace соответствуют заданным значениям?
Помогите с регуляркой
Re: Помогите с регуляркой
Если нужны именно регулярки – то примерно так:
http://regex101.com/r/rV1dL6
http://regex101.com/r/rV1dL6
Re: Помогите с регуляркой
Во, замечательно, спасибо!)
Re: Помогите с регуляркой
Не все замечательно....(
http://regex101.com/r/xN3uP7 а если использовать такую строку?
http://regex101.com/r/xN3uP7 а если использовать такую строку?
Re: Помогите с регуляркой
http://regex101.com/r/iJ3eB1
Такой вариант.
Вообще, возможно стоит посмотреть в сторону использования strpos + substr.
Такой вариант.
Вообще, возможно стоит посмотреть в сторону использования strpos + substr.
- samdark
- Администратор
- Сообщения: 9489
- Зарегистрирован: 2009.04.02, 13:46
- Откуда: Воронеж
- Контактная информация:
Re: Помогите с регуляркой
Код: Выделить всё
class Text {
/**
* Cuts text after <preview> mark
*
* @param string $text
* @param string $more_link
* @return string
*/
static function cut($text, $more_link) {
$text = explode('<preview>', $text, 2);
return empty($text[1]) ? $text[0] : $text[0]."\n$more_link";
}
/**
* Removes <preview> mark from the text
*
* @param string $text
* @return string
*/
static function hideCut($text) {
return str_replace('<preview>', '', $text);
}
Нравится Yii? Давайте сделаем его лучше!.
Re: Помогите с регуляркой
Sam Dark, спасибо!
А подскажите пожалуйста еще, я так понимаю в rules необходимо поставить проверку текста по паттерну? какой паттерн должен подойти под многострочный текст вида , "Много текста <preview> продолжение статьи"
UPD: справился вот так:
А подскажите пожалуйста еще, я так понимаю в rules необходимо поставить проверку текста по паттерну? какой паттерн должен подойти под многострочный текст вида , "Много текста <preview> продолжение статьи"
Код: Выделить всё
array('content', 'match', 'pattern'=>'паттерн',
'message'=>'Вы должны указать метку <preview> для Превью страницы'),
Код: Выделить всё
array('content', 'match', 'pattern'=>'<preview>',
'message'=>'Вы должны указать метку <preview> для Превью страницы'),