- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте. Вопрос к профи. самому не осилить.
Как преобразовать строку 46?5&7x20 в строку 46.5x20.7
Числа могут быть любые
46?33&12x17 = 46.33x17.12
3?2&55x7 = 3.2x7.55
32?4&2x7 = 32.4x7.2
и т.д.
$str = preg_replace('/^(\d+)\?(\d+)&(\d+)x(\d+)$/', "$1.$2x$4.$3", $str);
примерно так.. не проверял
т.е. у вас всегда формат
число?число&числоxчисло?
и последние два числа менятся местами?
Если так - то например вот так:
Это код для понимания.
Можно регуляркой:
т.е. у вас всегда формат
число?число&числоxчисло?
Да. Задача ещё усложняется, так как строка имеет вид
laminat-balter-5?15&15x5-big-32?5&5x32-lap
и строку надо привести в вид
laminat-balter-5,15x5,15-big-32,5x32,5-lap
Спасибо Вам ребята, по крайней мере есть от чего мне отталкиваться. А вообще я ступил, надо было сразу всю строку вам показать. Вы же спецы.
сделал так
$vgg = explode("-", $tekurl);
$slovvgg = count($vgg);
for ($x=0; $x<$slovvgg; $x++) {
$str = $vgg[$x];
if (preg_match("/^(\\d+)\\?(\\d+)&(\\d+)x(\\d+)\$/",$str,$r)) {
$str="$r[1].$r[2]x$r[4].$r[3]";
$vgg[$x] = $str;
}
}
$rightUrl = implode("-", $vgg); // получили итоговую строку
А это точно не опечатка? В предыдущей теме в логах урлы были другие
Улы
site.ru/tovar/laminat-balterio-kosbi-eco-wood-10,5x90
site.ru/tovar/laminat-balterio-kosbi-eco-wood-20,5x90,5
и вот в логах
/tovar/laminat-balterio-kosbi-eco-wood-10?5x90 HTTP/1.0" 404 4502 "-" "Mozilla/5.0 (compatible; YandexBot/3.0;
/tovar/laminat-balterio-kosbi-eco-wood-20?5x90&,5 HTTP/1.0" 404 4502 "-" "Mozilla/5.0 (compatible; YandexBot/3.0;
т.е. цифры в урле местами не менялись.
А это точно не опечатка? В предыдущей теме в логах урлы были другие
т.е. цифры в урле местами не менялись.
Вот блин, сейчас проверять буду. но мне показалось что закономерность только такая. спасибо
---------- Post added 30-10-2014 at 16:56 ----------
Мдя, жесть, есть отклонения.
есть и такие варианты 31?5x94&9 надо в 31,5x94,9
27?46&73x89 нужно преобразовать в 27.73x89.46
а где то он вообще отрезал урл
mix-balter-2,5x2,5-300x300 получил в логах mix-balter-2
Жесткач. Вариантов стало больше. Ребят спасибо на этом, хоть на часть урлов редирект получится сделать.
ps заметил вот что. есть делители строки любой, такого плана 31?5x94&9 это 3 знака ? & x
Если после ? идет & то числа местами надо переставлять, что мы и сделали.
Если после ? идет x то переставлять не надо, просто меняю запятую на точку.
а это в виде исключения из правил
Да. Задача ещё усложняется, так как строка имеет вид
laminat-balter-5?15&15x5-big-32?5&5x32-lap
и строку надо привести в вид
laminat-balter-5,15x5,15-big-32,5x32,5-lap
Без учета того, что у вас оказались другие начальные условия и варианты перестановок - то вам бы поошло решение с preg_replace - оно буквы не затрагивает, а меняет только цифры и знаки по шаблону.
Без учета того, что у вас оказались другие начальные условия и варианты перестановок - то вам бы поошло решение с preg_replace - оно буквы не затрагивает, а меняет только цифры и знаки по шаблону.
Спасибо. Я сделал на основе того что мне здесь показали. Просто некоторые урлы придется не редиректить, так как ни одно правило для них не работает. Робот яндекса переставляет как хочет или обрезает урл (это вс касается урлов где есть запятая).
---------- Post added 30-10-2014 at 17:25 ----------
Спецы. Очень прошу теперь помочь с редиректом фотографий в .htaccess.
Думаю всё проще, но мне тоже самому не осилить.
photo/balter/ecowood/big/brown-15x50,5.jpg нужно редиректить на photo/balter/ecowood/big/brown-15x50.5.jpg
photo/balter/ecowood/brown-15x50,5.jpg нужно редиректить на photo/balter/ecowood/brown-15x50.5.jpg
Вставить после RewriteEngine On
Вставить после RewriteEngine On
Ничего не случится с фотографиями без запятой? Их это правило не затронет?