![](/img/trans.png)
[英]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.