Php 无法从url获取html特殊字符
我对php非常陌生,无法找到问题的答案 我尝试从URL回显带有特殊字符的字符串(即Php 无法从url获取html特殊字符,php,Php,我对php非常陌生,无法找到问题的答案 我尝试从URL回显带有特殊字符的字符串(即à;,é;) URL字符串: preview.php?content=blà&伊库特;bla 预期回显结果:blábla 所以我这样做: $cont = $_GET['content']; echo $cont; 结果: bl 因此,即使我的页面有一个,我也尝试了: $cont = $_GET['content']; $cont = html_entity_decode($co
à;
,é;
)
URL字符串:
preview.php?content=blà&伊库特;bla
预期回显结果:blábla
所以我这样做:
$cont = $_GET['content'];
echo $cont;
结果:
bl
因此,即使我的页面有一个
,我也尝试了:
$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 html\u entity\u decode(blà;é;bla);
甚至这个:
echo "<p>blà é bla</p>";
echo“blà;é;bla”;
我得到了预期的结果:
blábla
因此,我不认为这是字符集问题,但不理解为什么它与文本字符串一起工作,而与get变量不一起工作,有人能帮我吗?用:编码URL,例如:
$url = 'content=' . urlencode('content=<p>blà é bla</p>');
echo '<a href="preview.php?' . htmlentities($url) . '">';
$url='content='。urlencode('content=blà;é;bla');
回声';
@justonUndermillion是正确的
例如:
如果您尝试从URL访问数据,如
http://localhost/index.php?content=%3Cp%3Eblà%20é%20bla%3C/p%3E
echo $_GET['content'];
OUTPUT: bl
但是当你通过编码数据来传递数据时
http://localhost/index.php?content=%3Cp%3Ebl%26agrave%3B%20%26eacute%3B%20bla%3C%2Fp%3E
echo $_GET['content'];
OUTPUT: blà é bla
最好使用URL中的数据编码功能。谢谢大家
这很好用
实际上,由于我的URL是用javascript生成的,所以我在我链接的href变量上做了一个
encodeURIComponent
,它也可以工作。如果您想将带有参数的URL作为URL中的值并通过javascript函数传递,例如
将URL值通过PHPurlencode()
函数传递两次,如下所示
<?php
$url = "index.php?id=4&pg=2";
$url = urlencode(urlencode($url));
echo "<a href=\"javascript:openWin('page.php?url=$url');\">";
?>
如果不这样做,您会发现目标脚本中的结果URL值缺少?
问号后面的所有var=值
index.php?id=4
请同时检查此在线工具:,您需要在字符串进入URL之前对其进行编码,以便在您取下它时能够对其进行解码。符号是URL中的特殊字符,用于分隔查询字符串参数。
&
是下一个get参数的URL分隔符,使用前必须对URL进行编码。因此,编码后,&
变为%26
。要了解我的意思,请在echo$cont代码>此var\u转储($\u GET)
und您将看到Array([content]=>bl[agrave;]=>[eacute;bla]=>)
soagrave_代码>成为数组键。
index.php?id=4