首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将PHP替换为&而不是&

将PHP替换为&而不是&
EN

Stack Overflow用户
提问于 2012-01-04 18:52:13
回答 2查看 3.8K关注 0票数 1

目前我有:

代码语言:javascript
复制
//replace common characters
$search = array('&', '£', '$'); 
$replace = array('&', '£', '$'); 
$html= str_replace($search, $replace, $html);

这段代码的问题是,如果已经转换了&,它将尝试再次转换它。我如何才能确保这种情况不会发生?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-01-04 19:25:57

我给出了一个例子,但如果你有像' & '这样的后者,那么希望它能为你工作:

代码语言:javascript
复制
$str = 'India & Aust & New ';
$regex = '/(\s\&\s)/i';
$replace = ' & ';

if(preg_match($regex, $str)){
    $new_str = preg_replace($regex, $replace, $str );

    echo '<pre>';
    echo htmlspecialchars($new_str, ENT_QUOTES);
    echo '</pre>';
}
else{
    echo 'Not matched!';
}

但请记住,如果你在一个“和”符号的两边都有空格,或者你想要的任何东西,这将会起作用。否则,请遵循@Treffynnon回答..

票数 1
EN

Stack Overflow用户

发布于 2012-01-04 18:55:13

我会使用PHP的内置函数来转义HTML字符:

  • htmlentities()
  • htmlspecialchars()

而不是滚动我自己的,因为这要容易得多。htmlentities()htmlspecialchars()使用double_encode参数显式处理此问题:

当double_encode关闭时,PHP将不会对现有的html实体进行编码。缺省设置是转换所有内容。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8725594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档