2013-05-27 124 views
-1

我想使代码,将采取输入的字符串,搜索特定字符的字符串,并将其替换为html代码。PHP的preg_replace不替代输入代码与HTML代码

这是我迄今为止

function htmlsymbolsconvertor($tmp1) 
    { 

     $symbols = array ('£', '-'); 
     $htmlcode = array ('£', '-'); 

     return preg_replace($symbols, $htmlcode, $tmp1); 
    } 

做但它不改变输入字符的HTML代码。

我可能没有理解关于使用preg_replace的php.net页面,而且我还没有发现那里已经有类似于我想要做的事情或者我可以修改的东西。

尽管我不确定preg_replace是否需要使用正确的php代码。最终一旦我得到代码工作符号和htmlcode将被放入数据库,但我可以轻松地做到这一点,我只需要获得基本的代码工作。

如果在stackoverflow上有另一个话题涵盖了我所问的请指向我,我为重复道歉。

+0

'preg_replace'需要一个有效的正则表达式。改用'str_replace()'。 – HamZa

+1

使用['htmlentities'](http://us.php.net/htmlentities),它的确如此 – arnaud576875

回答

6

不要创建已经写好的东西。

htmlspecialchars - 转换特殊字符为HTML实体

htmlentities - 转换所有适用的字符为HTML实体

此功能改变了的HTML实体特殊字符。

执行的翻译是:

  • '&'(符号)变成 '&'
  • '“'。(双引号)变为 '"' 当没有设置ENT_NOQUOTES
  • ”' “(单引号)仅在设置了ENT_QUOTES时变为'''(或')
  • '<'(小于)变成'<'
  • '>'(大于)变为'& GT
+0

谢谢你的回应,htmlentties似乎做的工作,除了不转换字母和数字和sapce html代码,但我可以忍受这一点。 str_replace将defintely将有用的未来的代码,我会做谢谢你所有的yoru帮助,我不知道如何我可以标记你的帮助,如果你建议我会标记你的好帮助:) –

+0

@AndrewCrawford - 你只是需要将答案标记为已接受。 – andrewsi

+0

mmmm不知道为什么,但是当我试图转换为HTML代码时,它的作品,如果它本身,但是当它与任何其他字符,它只是显示一个空的领域。我正在使用htmlentities。如果代码是必需的,我会在此之后发布,但我使用的HTML实体基本上是在php.net上的例子显示的例外,我使用html5 –