[英]converting special characters in HTML into the appropriate coding for PHP
[英]Replace characters in a string with their HTML coding
我需要用其HTML编码替换字符串中的字符。
例如 敏捷的棕色狐狸跳过了懒狗)。
我需要用&替换引号。 并用( 和)
我已经尝试过str_replace,但是我只能替换1个字符。 有没有办法使用str_replace替换多个字符? 还是有更好的方法来做到这一点?
谢谢!
我建议使用htmlentities()
函数。
看看手册 。
PHP具有许多函数来处理这种事情:
首先, htmlentities()
和htmlspecialchars()
。
但是,正如您已经发现的那样,它们不会处理(
和)
字符,因为这些字符不是必须以HTML实体形式呈现的字符。 我猜问题是为什么您要将这些特定字符转换为实体? 我真的看不出这样做的充分理由。
如果确实需要这样做, str_replace()
将使用搜索和替换参数中的数组进行多个字符串替换:
$output = str_replace(array('(',')'), array('(',')'), $input);
您也可以类似的方式使用strtr()
函数:
$conversions = array('('=>'(', ')'=>')');
$output = strtr($conversions, $input);
这些都可以为您解决问题。 同样,我也不知道为什么要这么做,因为在这种情况下, (
和)
括号没有什么特别的。
在研究以上内容时,您可能还需要查找get_html_translation_table()
,它以适合与strtr()
一起使用的格式返回htmlentities()
或htmlspecialchars()
使用的实体转换数组。 您可以在运行转换之前加载该数组并向其中添加额外的字符; 这将允许您同时转换所有普通实体字符。
我要指出的是,如果为您的页面提供UTF8字符集,则无需将任何字符转换为实体(HTML保留字符<
, >
和&
除外)。 这可能是您的替代解决方案。
您还在另一条评论中询问有关转换换行的信息。 这些可以使用PHP的nl2br()
函数进行转换,但也可以使用str_replace()
或strtr()
进行转换,因此可以与其他所有内容一起添加到转换数组中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.