私は非常に新しいPHPで、私の問題の答えを見つけることができません。URLからhtmlの特殊文字を取得できません
URLから特殊文字(つまり、à
、é
)の文字列をエコーしようとしました。
URL文字列:
$cont = $_GET['content'];
echo $cont;
結果: bl
だから、私のページを持っている場合でも、だから私行うこのblà é bla
: preview.php?content=<p>blà é bla</p>
期待は結果をエコー<meta charset="UTF-8">
、私は試しました:
$cont = $_GET['content'];
$cont = html_entity_decode($cont, ENT_COMPAT, 'UTF-8');
echo $cont;
同じ結果: bl
私は同じ結果とページの先頭にヘッダ(header('Content-Type: text/html; charset=UTF-8');
)と試みました。奇妙な何
それは私がこれ試してくださいです:私は期待した結果を得る
echo "<p>blà é bla</p>";
:
echo html_entity_decode("<p>blà é bla</p>");
、あるいはこれをそう blà é bla
を、私は考えていませんそれは文字セットの問題ですが、リテラル文字列では動作しますが、get変数では動作しない理由を理解できません。
をあなたはそれはあなたがそれを取るとき、それをデコードすることができるように、URLに行く前に文字列をエンコードする必要があります。アンパサンドはURLの特殊文字であり、クエリ文字列パラメータを区切るために使用されます。 – Tom
'&'は次のgetパラメータのURLセパレータです。使用する前にURLをエンコードする必要があります。したがって、 '&'はエンコーディング後に '%26'になります。 'echo $ cont;'このvar_dump($ _ GET); 'と' Array([content] => bl [agrave; _] => [eacute; _bla] =>)を見ると、 'だから' agrave; _は配列キーになります。 – JustOnUnderMillions