2013-05-27 303 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 –