저는 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 html_entity_decode("<p>blà é bla</p>");
또는이 :
echo "<p>blà é bla</p>";
내가 예상 결과를 얻을 :
어떤 이상한 것은 그게 내가이 시도입니다 그래서 blà é bla
을, 나는 생각하지 않는다 그것은 charset 문제이지만, 리터럴 문자열로 작동하지만 get 변수로 작동하지 않는 이유를 이해할 수 없지만 누군가 나를 도울 수 있습니까?
당신은이 URL에 가기 전에 당신이 그것을 벗을 때를 복호화 할 수있는 문자열을 인코딩 할 필요가있다. 앰퍼샌드는 URL의 특수 문자이며 쿼리 문자열 매개 변수를 구분하는 데 사용됩니다. – Tom
'&'는 다음 get 매개 변수에 대한 URL 분리 자입니다. URL을 사용하기 전에 인코딩해야합니다. 그래서'&'는 인코딩 후에'% 26'이됩니다. 'echo $ cont;'var_dump ($ _ GET); 그리고'Array ([content] => bl [agrave; _] => [eacute; _bla] =>)를 보게 될 것입니다. 그래서 'agrave; _'가 배열 키가된다. – JustOnUnderMillions