Intereting Posts
проверить URL-адрес по FILTER_VALIDATE_URL Странные способы «или» в PHP вставить несколько полей, используя цикл foreach Regex для имен проверка, если логин и корзина пуста CodeIgniter: пытается вызвать метод конструктора, чтобы проверить, зарегистрирован ли пользователь (вызывает бесконечный цикл перенаправления) Выполнение скрипта bash через PhP дает другой результат по сравнению с выполнением вручную Как создать несколько флажков, сгруппированных по полям в Cakephp 3 Как запросить с активной записью в codeigniter для дат между указанными временами Использование __get () (магия) для эмуляции корректности для чтения и ленивой загрузки Как обнаружить похожие изображения в PHP? Добавление свойства в php datatable для google chart custom html tooltips Понимание того, что \ u0000 находится в PHP / JSON и избавиться от него Система сборки Sublime Text 3 выполняет другую версию PHP Что такое нормализованный UTF-8?

PHP url strings конфликтует «?» И «&»

На моем веб-сайте есть система языков. Когда люди переключаются на другой язык, к URL-адресу добавляется следующее:? ?lang= . Проблема в том, что мой сайт разделен страницами, которые также добавляют ?p= к URL. Поэтому в основном, если они меняют язык на одной из этих страниц, он перезапишет ?p= и вернется на главную страницу. Так будет index.php?lang= .

Каков код или как его закодировать, чтобы php проверял, есть ли еще ? строка в url и переключатель ?lang= to &lang= ?

Вы можете использовать http_build_query чтобы избежать этих проблем:

 $params = array( 'p' => 'foo',  'lang' => 'bar' ); echo http_build_query($params); // p=foo&lang=bar echo '?' . http_build_query($params); // ?p=foo&lang=bar 

проверьте, что $_SERVER['QUERY_STRING'] пуст.

если да, добавьте ?lang= иначе добавить &lang=