我在html中有一个网址:
<a href="index.php?q=event&id=56&date=128">
我需要将其完全转换为字符串:
<a href="index.php?q=event&id=56&date=128">
我知道如何使用preg_replace等来实现这一点,但是在php中是否有一个函数直接处理我可以用于其他编码问题的编码,例如&amp; nsbp(或者它是什么等等)?理想情况下,我会将我的字符串发送到函数中,它会输出'&amp;'而不是&amp; amp。是否有转换&TEXT的通用功能;成为一个真正的角色?
编辑:对不起,在我输入完问题之前发布了这个。问题现已完成。
答案 0 :(得分:23)
$newUrl = html_entity_decode('<a href="index.php?q=event&id=56&date=128">');
echo $newUrl; // prints <a href="index.php?q=event&id=56&date=128">
答案 1 :(得分:4)
使用htmlspecialchars_decode。直接来自PHP文档页面的示例:
$str = '<p>this -> "</p>';
echo htmlspecialchars_decode($str); // <p>this -> "</p>
答案 2 :(得分:1)
没有内置的PHP函数可以使用诸如&
之类的实体并将其转换为double&amp ;.为了防止混淆,html实体为&amp;实际上是&
,而不是amp;
,因此在您的示例上运行任何内置解析器都将返回以下内容:
<a href="index.php?q=event&id=56&date=128">
而不是
<a href="index.php?q=event&&id=56&&date=128">
为了获得双倍和版本,您需要使用正则表达式。
或者,如果你实际上想要单身&amp;版本,你有两种可能性。
& " ' < >
,则应使用htmlspecialchars_decode。这对于您提供的示例就足够了。我怀疑htmlspecialchars_decode会比html_entity_decode更快,所以如果它涵盖了你想转换的所有实体,你应该使用它。
答案 3 :(得分:0)
字符串经过TinyMCE后,只有这段代码可以帮助我
$string = iconv('UTF-8','cp1251',$string);
$string = str_replace(chr(160), chr(32), $string);
$string = iconv('cp1251','UTF-8',$string);