PHPには、文字列変数を返す関数 get_query_string() があります。例えば
$end_of_url = get_query_string();
print $end_of_url;
私を印刷します
?id=192
これをURLの最後に入れる必要がありますが、追加すると次のようなURLになります
http://mysite.com/device-information%3Fid%3D192
疑問符 (?) は ASCII 値%3Fで置き換えられ、等号 (=) は%3Dで置き換えられます。
疑問符と等号をURLに正しく入れる方法は?
追加されたコード:
<div id="navigationLang" class="clearfix" style="margin-right: 60px;">
<?php
$path = $_GET['q'];
$languages = language_list('enabled');
$links = array();
foreach ($languages[1] as $language) {
$links[$language->language] = array(
'href' => $path.get_query_string(),
'title' => ucfirst($language->prefix),
'language' => $language,
'attributes' => array('class' => 'language-link'),
);
}
function get_query_string(){
$request_url = apache_getenv("HTTP_HOST") . apache_getenv("REQUEST_URI");
$request_url = "http://".$request_url;
$parts = parse_url($request_url);
$end_of_url = $parts['query'];
if ($end_of_url != "") {
$end_of_url = '?'.$parts['query'];
$a = htmlentities($end_of_url);
$b = html_entity_decode($a);
return $b;
}
else {return ""; }
}
主な問題は、print / echo が正しく機能することですが、ウェブサイトでテストすると、リンクに ASCII 記号 (%3F および %3D) が含まれており、疑問符と等号が必要です。