Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP转换HTML中的特殊字符?_Php_Html_Encoding_Character Encoding - Fatal编程技术网

如何使用PHP转换HTML中的特殊字符?

如何使用PHP转换HTML中的特殊字符?,php,html,encoding,character-encoding,Php,Html,Encoding,Character Encoding,我希望将特殊字符(如智能引号)转换为HTML实体,但不转换其他HTML标记,因为我需要HTML标记才能工作。 例如,将NVH“噪音”转换为NVH&ldquo;噪音&rdquo;问题 奇怪的是,如果我在本地环境中登录,我会收到smartquotes的“噪音”,但在服务器上我收到了“噪音”?。我的本地运行php56灯。服务器运行54和55。我升到56岁了,但还是没有运气。我认为要么是php配置中的一些东西,要么就是其他东西。相同的精确代码。尝试php htmlspecialchars方法 <?

我希望将特殊字符(如智能引号)转换为HTML实体,但不转换其他HTML标记,因为我需要HTML标记才能工作。 例如,将
NVH“噪音”
转换为
NVH&ldquo;噪音&rdquo;问题


奇怪的是,如果我在本地环境中登录,我会收到smartquotes的“噪音”,但在服务器上我收到了“噪音”?。我的本地运行php56灯。服务器运行54和55。我升到56岁了,但还是没有运气。我认为要么是php配置中的一些东西,要么就是其他东西。相同的精确代码。

尝试php htmlspecialchars方法

<?php
$new = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $new; // &lt;a href=&#039;test&#039;&gt;Test&lt;/a&gt;     
?>

对于智能引号的一种翻译,或者对于某些字符而不是其他字符,
str_replace
可能是唯一的方法:

$string = str_replace(array('“','”'), array('&ldquo;','&rdquo;'), $string);

标记中调用php代码,例如htmlspecialchars,就像
@NicolásCarlo一样,这是行不通的。这是一个包含html markupAFAIK的长字符串,没有内置的方法来实现这一点。你可以将内容添加到框架中,因此如果你使用的是框架,而不是普通的PHP,那么你可能需要查看它的文档。我希望能够涵盖其他特殊字符,这样就不会起作用。是的,它会起作用。如果你想要零碎的,这是唯一的选择。只要用你们想要的字符构建$Pineder和$haystack数组就可以了。奇怪的是,若我在本地环境中登录,我会得到“噪音”,但在服务器上我得到了“噪音”?。我的本地运行php56灯。服务器运行54和55。我升到56岁了,但还是没有运气。我认为要么是php配置中的一些东西,要么就是其他东西。完全相同的代码。