siv1987

siv1987
Рейтинг
427
Регистрация
02.04.2009

Ну так же говорят - замените спан на див, по феншую блочные элементы нельзя вставлять в строчные.

По поводу остального, у вас ошибка в микроразметке. Посмотрите к какой сущности относится ratingValue и отмечена ли она у вас.

http://php.net/manual/ru/regexp.reference.delimiters.php

Manual:

Если разделитель часто используется в шаблоне, в целях удобочитаемости, лучше выбрать другой разделитель для этого шаблона.

/http:\/\//
#http://#

Другой вопрос, что вы тестируйте регулярное выражение где используется flash или javascript, а там в качестве литерального формата (сокращенной формы записи) слеши являются разделителями шаблона - /pattern/.

Miracle:
https?:\/\/ против https?://

И? Слеш не является спец символом в regexp, его нужно экранировать только в случае если используется в качестве разделителя шаблона. Нет тут никакой семантики, речь только о использование слеша в разделителе шаблона и все.

Miracle:
4 тест так и не проходит )

Что значит "не проходит"? Что он должен пройти я так и не понял.

Miracle:
жадность фраера сгубила

Да, там нужен инвертор жадности. Хотя логически должно работать и без него, врядли есть вложенные теги url, а с "без пробельных символов" он много не захватит.

ПС. Понял, тут нет кавычек, а без ковычек с "жадностью" захватит до последней закрывающей квадратной скобки, которой здесь является тег img.

Miracle:
ну а это уже и семантически правильно.

Это что вообще такое?

Miracle:
но я думаю что это решается через preg_match

Решается это обычным колбэком кой пример есть выше.

Miracle:
и, наверное правильней будет все же вот так

[mysite1\.com] - ни разу не правильней.

Miracle:
1. нужно все что между тегами оставить если это "левые"

Тогда придется юзать callback, один регулряным выражением заменой по условию не составить.

Miracle:
тест 4 у вас не работает так же как и у меня!

Все там работает. Главное что понимать по "не работает".

---------- Добавлено 31.01.2015 в 16:58 ----------


$allow = array('mysite2.org.ru', 'mysite1.com');

$str = preg_replace_callback('#\?https?://(?:www\.)?([^/\]]+)\S*[\"\']?\](.*?)\[/url\]#',
function($m) use($allow){
if(in_array($m[1], $allow)){
return $m[0];
}
return $m[2];
}, $str);
Miracle:
я пробовал так

Можно и так, только в анкоре могут быть и пробельные символы.


$allow = array('mysite2.org.ru', 'mysite1.com');

$allow = str_replace('.', '\.', implode('|', $allow));
$str = preg_replace('#\?https?://(?!(www\.)?('.$allow.'))\S*[\"\']?\](.*?)\[/url\]#', '', $str);

Это поисковой сервис?

Можно, пока живет АПИ другого сайта, почему нет.

Где нормальный шаблон текста? Мы должны гадать что теги url и картинок у вас там в тексте?

'#\(.*?)\[/url\]#'

Кириллица? Файл сохранить в utf-8 или писать редиект на RewriteRule

Всего: 6568