Я, как правило, теряю трек, когда имею дело с большим количеством специальных персонажей.preg_replace с большим количеством специальных символов
У меня есть некоторые URL-адреса (плохо отформатированные, недостаточно согласованные для использования parse_url), и я хочу заменить все вхождения параметров «мертвым» и «мертвым» = some_text_here без ничего.
Могут быть и другие переменные до и после.
Пример URLs:
http://www.url.com/?dead?dead=whatever_text&wow=test
http://www.url.com/?hello?dead=whatever_text
Это то, что я думал, что будет работать, но оно не.
$parsed_url = preg_replace("/(\?dead(?:=.*?)?)(?:\&|$|\?)/", "", $url);
Что нужно сделать, это проверить «мертвые», с опцией = значение позади, а затем заменить это на ничего. Но это также заменяет? и &, если есть параметр, следующий за параметром? dead. Также его единственное замещение 1, не все.
Это делает
http://www.url.com/?dead?dead=whatever_text&wow=test
Стать
http://www.url.com/dead=whatever_text&wow=test
это работает, великий человек :) –