- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
В 2023 году Google заблокировал более 170 млн фальшивых отзывов на Картах
Это на 45% больше, чем в 2022 году
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Нужно заменить bfilter[brand][0]=28&bfilter[brand][1]=13&bfilter[brand][2]=24&pf[335][0]=17&p=2
на bfilter[brand][]=28&bfilter[brand][]=13&bfilter[brand][]=24&pf[335][]=17&p=2
регулярным выражением.
Т.е. содержимое чётных квадратных скобок нужно очистить от числа, которое там есть, чтобы были пустые скобки. Длина исходной строки не ограничена, числа могут быть разные.
Мне предложили решение:
{$page_href=preg_replace('/\[\d+?\]/i', '[]', $page.href)}
но на сайте оно не работает (проверял и на локальном Openserver и на хостинге).
При этом, на сервисе проверки https://ru.functions-online.com/preg_replace.html все работает.
Может подскажите какое-то другое решение?
Или есть мысли, почему может не работать?
так можно сделать
$string = 'bfilter[brand][0]=28&bfilter[brand][1]=13&bfilter[brand][2]=24&pf[335][0]=17&p=2';
$string = preg_replace('/\[\d\]=/', '[]=', $string);
---------- Добавлено 21.10.2016 в 00:17 ----------
хотя лучше так, если числа могут быть более одного разряда
$string = 'bfilter[brand][0]=28&bfilter[brand][1]=13&bfilter[brand][2]=24&pf[335][0]=17&p=2';
$string = preg_replace('/\[\d{1,10000}\]=/', '[]=', $string);
Эм...
Может быть:
{
$page_href=preg_replace('/\[\d+?\]/i', '[]', $page_href);
}
Неправильно название переменной и нет точки запятой в конце.
Вторые четные скобки очистит
так можно сделать
---------- Добавлено 21.10.2016 в 00:17 ----------
хотя лучше так, если числа могут быть более одного разряда
ситуация та же: в сервисе проверки все ок, а на сайте не работает.
вот фрагмент который правлю:
исходный фрагмент соответствует $page.href
пробовал Ваш вариант $pattern и $replacement использовать, а все равно работать не хочет.
Рабочий вариант:
Ошибки в первичном варианте:- в $page.href нехорошая точка;
- путаница с простыми и фигурными скобками;
- пропущена точка с запятой;
- лишний вопросительный знак;
- не учтены первые квадратные скобки;
- не учтено, что в первых квадратных скобках могут быть буквы и цифры.
ощущение, что тут дело не в правильности кода, а в том, как работает шаблонизатор.
От какой CMS такое чудо?
LEOnidUKG, smarty вроде, там если память не изменяет надо php код объявлять в блок {php}code..{/php}
А регулярки все рабочие
ощущение, что тут дело не в правильности кода, а в том, как работает шаблонизатор.
От какой CMS такое чудо?
readyscript
зато функционал интересный достаточно и цена
readyscript
зато функционал интересный достаточно и цена
Ну вот вам первый и косяк. Пробуйте вывести в отдельный файл это всё, и потом применять только переребот уже с обработанными файлами.
Из стартового поста неочевидно было, что это Смарти. Теперь понятно, откуда это чудо с точкой - $page.href. Предупреждать надо, чистый PHP таких шуток не любит.:o